我有以下代码。它从我的原始资源文件夹中获取视频并启动视频,我需要它在视频结束时循环播放视频,但在经过大量艰苦的研究后,我不能在生活中找到它。
这是我的主要活动的Java代码。
package com.infernowebmedia.staircat;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.VideoView;
import android.widget.MediaController;
public class MainActivity extends Activity {
private VideoView mVideoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mVideoView = (VideoView) findViewById(R.id.surface_view);
mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() +"/"+R.raw.staircatloop));
mVideoView.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
我见过有人试图使用setOnCompletionListener但是每当我尝试实现他们的答案中建议的代码时,我从Eclipse中得到了多个错误,不知道我做错了什么!请帮帮我:)。
〜汤姆
答案 0 :(得分:1)
试试这个:
import android.media.MediaPlayer;
...
myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer arg0) {
// restart on completion
myVideoView.start();
}
});
...
myVideoView.start();
...
答案 1 :(得分:0)
在prepardelistener类上设置为循环为true,然后在completeListener类上恢复视频, 请试试这个,
myVideoView.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
myVideoView.resume();
}
});
myVideoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true);
myVideoView.start();
}
});