问题:假如使用videoview播放视频时,后台有正在播放的音乐,发现音乐播放器会暂停播放。 mediaController = new MediaController(this.getActivity()); mediaController.setVisibility(View.GONE); //隐藏进度条 videoView.setMediaController(mediaController);
rawUri = Uri.parse("android.resource://" + mMainActivity.getPackageName() + "/" + raw);
//利用 MediaMetadataRetriever 解决缓冲黑屏问题
MediaMetadataRetriever media = new MediaMetadataRetriever();
Log.d("videopath",rawUri.getPath());
media.setDataSource(this.getActivity(),rawUri);
//获取视频中的第一帧照片,设置为封面
Bitmap bitmap = media.getFrameAtTime(1, MediaMetadataRetriever.OPTION_CLOSEST_SYNC );
Drawable drawable = new BitmapDrawable(getResources(),bitmap);
videoView.setBackground(drawable);
media.release();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
videoView.setAudioFocusRequest(AudioManager.AUDIOFOCUS_NONE);
}
videoView.setVideoURI(rawUri);
// videoView.setFocusable(false);
videoView.start();
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mediaPlayer, int i, int i1) {
if (i == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) {
videoView.setBackgroundColor(Color.TRANSPARENT);
}
return true;
}
});
}
});
解决方案:
添加标注红色代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { videoView.setAudioFocusRequest(AudioManager.AUDIOFOCUS_NONE); }
设置音频焦点为:AudioManager.AUDIOFOCUS_NONE;
即可解决问题。