Android与控制器播放视频
问题描述:
我正在使用以下代码在我的Android设备上播放.mp4视频。我当我按下设备上的后退按钮使用此代码有3个问题,Android与控制器播放视频
声音仍然continoue发挥
,不能播放视频,只播放声音!
-
我不知道如何获取视频的控制器,以便用户可以停止视频,在视频中来回切换。
VideoView videoHolder = new VideoView(this); videoHolder.setMediaController(new MediaController(this)); getWindow().setFormat(PixelFormat.TRANSLUCENT); MediaPlayer mediaPlayer = new MediaPlayer(); Uri myUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.video); videoHolder.setVideoURI(myUri); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setDataSource(getApplicationContext(), myUri); mediaPlayer.prepare(); mediaPlayer.start(); videoHolder.requestFocus(); videoHolder.start();
答
1)覆盖onBackPressed您的活动:
@Override
public void onBackPressed() {
mediaPlayer.stopPlayback();
super.onBackPressed();
}
2)它是一个有效的视频格式?你正在使用模拟器还是真实的设备?如果您使用模拟器,请尝试使用真实设备。我回想过类似的问题。 但我也注意到:你把你的视频放在可绘制的文件夹中吗?
R.drawable.video
我不认为这样会奏效,你不能从那里播放视频。改为使用resources/raw
文件夹。顺便说一句:音频可以从资产文件夹直接播放,而视频不能;视频只能从原始文件夹播放,或者如果您将其复制到应用程序文件文件夹(getFilesDir()
) - 或当然sdcard。
3)为什么使用VideoView和MediaPlayer,而不仅仅是VideoView?你应该摆脱mediaPlayer,并使用VideoView。这条线
videoHolder.setMediaController(new MediaController(this));
看起来是正确的,并设置媒体控制器,用户可以在视频中寻找。 通过编程方式,您还可以使用seekTo()
在视频中来回切换。
答
VideoView videoView =(VideoView)findViewById(R.id.vv01);
//specify the location of media file
Uri myUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.login_footage);
//Setting MediaController and URI, then starting the videoView
videoView.setVideoURI(myUri);
videoView.requestFocus();
videoView.start();
这为我工作