0

私は次のコードを持っています。それは私のrawリソースフォルダからビデオを取り、ビデオを開始します。ビデオが終了したときにビデオをループする必要がありますが、多くの精力的な調査の結果、私の一生の間それを理解することはできません。

これは、メインアクティビティの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クラスでLoopingtrueに設定してから、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 に答える