8

アプリケーションに問題があり、次のようにseekTo()関数を使用したいVideoView:

videoView.seekTo(time);
videoView.start();

では問題なく動作しますが、以降のバージョンandroid 2.2では動作しませんandroid 2.3... 誰かが理由を教えてくれますか? それは何日も私を悩ませます。

4

4 に答える 4

4

への呼び出しVideoView.start()は、シークが完了した後にのみ行う必要があります。への呼び出しはシークをVideoView.seekTo()開始しますが、残念ながらシークが実際に完了したことを通知する必要VideoViewはありません。OnSeekCompleteListener

7990784 に対する私の回答に示されているように、VideoViewサポートするようにカスタマイズできます。OnSeekCompleteListener

onSeekComplete()その後、 を呼び出して受信登録を行うことができますsetOnSeekCompleteListener()。次に、リスナーの実装で を呼び出す必要がありますVideoView.start()

于 2012-08-13T17:17:20.000 に答える
1

Vitamioライブラリの VideoView クラスを試しましたか?

ヴィタミオ

于 2013-08-01T14:33:23.943 に答える
1

メソッドが適切に動作するためseekTo()には、ビデオの状態が である必要がありPlaybackStateます。

詳細については、こちらのVideoView ソースをご覧ください。

于 2012-04-26T10:53:17.247 に答える
0

このソリューションは機能するはずです。問題は、内部のメディアプレーヤーvideoViewが作成されていない可能性があります。

デバイスの向きを変えることで簡単にテストできます。それが私がそれをテストした方法です。

videoView.setOnPreparedListener(onPreparedListener);
private MediaPlayer.OnPreparedListener onPreparedListener = new MediaPlayer.OnPreparedListener() {
    public void onPrepared(MediaPlayer mp) {
        mp.seekTo(videoPosition);
    }
};
于 2016-02-09T12:26:37.870 に答える