0

我有以下代码。它从我的原始资源文件夹中获取视频并开始播放视频,我需要它在视频结束时循环播放视频,但经过大量艰苦的研究后,我终生无法弄清楚。

这是我的主要活动的 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 中收到多个错误,不确定我做错了什么!请帮我 :)

〜汤姆

4

2 回答 2

1

尝试这个:

import android.media.MediaPlayer;
...
myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
  @Override
  public void onCompletion(MediaPlayer arg0) {
    // restart on completion
    myVideoView.start();
  }
});
...
myVideoView.start();
...
于 2013-03-22T12:41:42.863 回答
0

在 prepardelistener 类上设置为 Looping 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();                
            }
        });
于 2014-12-22T16:10:19.427 回答