動画再生が停止したときの検出

I have this code for playing a video on a VideoView

myVideoView = (VideoView) findViewById(R.id.VideoView);
myVideoView.setVideoURI(Uri.parse(path));
myVideoView.requestFocus();
myVideoView.start();

動画の再生が終了すると、「申し訳ありませんが、この動画は再生できません」というメッセージが表示されます。私は、ビデオが終了する瞬間をキャッシュしたい。これどうやってするの?

ここに私のコードです:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video);

        Bundle extras = getIntent().getExtras();
        path = extras.getString("path");
        idPlaylist = extras.getString("idPlaylist");
        timer = extras.getString("timer");

        myVideoView = (VideoView) findViewById(R.id.VideoView);
        myVideoView.setVideoURI(Uri.parse(path));
        myVideoView.requestFocus();
        myVideoView.start();

        myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer mp) {
                Intent i = new Intent(getBaseContext(),
                        com.PlayerOrange.ViewPlaylist.class);
                i.putExtra("id", idPlaylist);
                i.putExtra("timer", timer);
                startActivity(i);
                finish();           
                }
          });

    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        System.out.println("Playing "+myVideoView.isPlaying());
        if ((keyCode == KeyEvent.KEYCODE_BACK) && (myVideoView.isPlaying()==true)) {
                //nothing happens
        } else {
            Intent i = new Intent(getBaseContext(),
                    com.PlayerOrange.ViewPlaylist.class);
            i.putExtra("id", idPlaylist);
            i.putExtra("timer", timer);
            startActivity(i);
            finish();
            return true;
        }

        return super.onKeyDown(keyCode, event);
    }
12
私は私の質問を編集しました。私はバックボタンが押され、ビデオが何も起こっていないときにそれが欲しいが、それもうまくいきません。
追加された 著者 Gabrielle,
currentActivityNameは何ですか?
追加された 著者 Gabrielle,
私は同じメッセージを取得し、VideoViewは静的ではありません。
追加された 著者 Gabrielle,
私の答えで追加したリンクをご覧ください。私はあなたのコードを私の場合にはうまく働いています。
追加された 著者 user370305,

1 答え

やってみました?

myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

    @Override
    public void onCompletion(MediaPlayer vmp) {
        Intent i = new Intent(getBaseContext(),
                    com.PlayerOrange.ViewPlaylist.class);
            i.putExtra("id", idPlaylist);
            i.putExtra("timer", timer);
            startActivity(i);
            currentActivityName.finish();           
    }
});  

また、myVideoViewが静的でないようにしてください。はいの場合は静的を削除します。

More info here

Look at Starting Activity when video is finished playing

Android - 動画/音楽プレーヤーのサンプル

動画の再生

rel="nofollow noreferrer"> MediaControllerとVideViewの使用に関するOnCompletionビデオ通知?

Android - ビデオ終了用のリスナ(またはハンドラ)

いいえ、私は今試してみるでしょう。ありがとう
追加された 著者 Gabrielle,
それは動作していない、私はまだメッセージを "申し訳ありません、このビデオは再生することはできません" ...そして今私がoncompletionからのコードは、ボリュームキーを押すと呼び出されます:(
追加された 著者 Gabrielle,
どのように静的を削除できますか?
追加された 著者 Mina Gabriel,