0

基本的に、webview に .gif を表示しながら、VideoView を設定して音楽を再生します (MediaPlayer よりも多くの機能)。複数のスレッドが必要かどうかはわかりませんが、一度に両方を実行しようとすると、クラッシュするか、音楽が再生されません。「コンテンツ ビュー」が WebView に設定されているため、main.xml のオブジェクト (ビデオビューなど) にアクセスできないというのは本当ですか?

コード: setContentView(R.layout.main);

    musicPlayer = (VideoView)findViewById(R.id.player);


   //run gif
    view = new GifWebView(this, "file:///android_res/raw/kk.gif");
    setContentView(view);



  //start player

    musicPlayer.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + musicList[0]));
    musicCounter =0;

    musicPlayer.setOnCompletionListener(TrackRepeater);
    musicPlayer.requestFocus();
    musicPlayer.start();

コンテキストを WebView に明らかに変更しないと、プレーヤーは機能します。ここで何をすべきかわかりません。乾杯。

4

1 に答える 1

1

VideoView を使用して音楽を再生する理由を詳しく説明してください。

MediaPlayer よりも多くの機能

VideoView は、基本的に SurfaceView と MediaPlayer のラッパーです。VideoView の追加機能は、使用していない画面でのビデオの再生に関連するもののみにする必要があります。MediaPlayer でそれを使用する具体的な理由は何ですか?

しかし、アクティビティの内容を変更することで、VideoView が壊れているというのは正しいと思います。setContentView() を複数回呼び出さずにそれを行う方法を見つける必要があります。ここには多くの可能性があります:

main.xml レイアウトの親ビューへの参照を取得し、.addView() を呼び出して、setContentView() を呼び出す代わりに GifWebView を追加します。

GifWebView の宣言を xml レイアウトに追加し、VideoView と同じ方法で参照を取得します。

于 2012-05-10T23:55:18.187 に答える