我正在尝试在登录屏幕上播放视频。我已导入mp4视频文件。但是,当我运行此代码视频时,它不会出现在屏幕上。实际上,视频文件显示为??。标志。我需要添加其他内容来播放视频吗?
<VideoView
android:id="@+id/videoView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
Java部分
public VideoView videoView;
public MediaPlayer mediaPlayer;
@OnClick(R.id.email_sign_in_button)
void delegateLogin() {
progressBar.setVisibility(View.VISIBLE);
loginPresenter.doLogin(usernameInput.getText().toString(), passwordInput.getText().toString());
}
@OnClick(R.id.register_now_button)
void registerNow(){
loginPresenter.doOpenRegisterScreen(this);
}
@OnClick(R.id.forgot_password_button)
void forgotPassword(){
loginPresenter.doOpenForgotPasswordScreen(this);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
ButterKnife.bind(this);
videoView=(VideoView)findViewById(R.id.videoView1);
Uri uri= Uri.parse("android.resource://"
+getPackageName()
+"/"
+R.raw.mt_launch_screen);
videoView.setVideoURI(uri);
// videoView.requestFocus();
videoView.start();
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.setLooping(true);
// mediaPlayer.start();
}
});
答案 0 :(得分:0)
查看来自Android的文档:https://developer.android.com/guide/topics/media/mediaplayer#java
您需要使用ranges = np.array([[0,100],[100,200],[200,300]])
values = [23, 100, 188, 223, 999]
for v in values:
idx = getIndex(ranges,v)
print('{} in ({},{})'.format(v,ranges[idx,0],ranges[idx,1]) if idx!=-1 else '{} not found'.format(v))
23 in (0,100)
100 in (100,200)
188 in (100,200)
223 in (200,300)
999 not found
中的MediaPlayer
onCreate
答案 1 :(得分:0)
尝试设置Mediacontroller
String video_url = "android.resource://" + context.getPackageName() +
"/" + R.raw.mt_launch_screen;
final VideoView videoView = findViewById(R.id.dialog_video);
Uri videoUri = Uri.parse(video_url);
MediaController mediaController= new MediaController(context);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.setVideoURI(videoUri);
videoView.requestFocus();
videoView.start();
答案 2 :(得分:0)
尝试移动videoView.start()
videoView.setVideoURI(uri);
// videoView.requestFocus();
// videoView.start(); /* don't start it if you setOnPrepared? */
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
videoView.start(); //Start here
mediaPlayer.setLooping(true);
// mediaPlayer.start();
}
});