1

私はアンドロイドでビデオプレーヤーに取り組んでいます。作成メソッドでサーフェスホルダーを作成したとき、作成されませんでしたが、ボタンのクリックメソッドでサーフェスホルダーを作成すると、作成されました

私のコーディングは、

preview=(VideoView)findViewById(R.id.surface);
    preview.setEnabled(true);
    preview.bringToFront();
    holder=preview.getHolder();
    holder.setFixedSize(400, 400);

    mp=new MediaPlayer(); 
    mp.setDataSource("path");
    mp.setDisplay(holder);
    mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mp.setOnBufferingUpdateListener(playerActivity.this);
    mp.setOnPreparedListener(playerActivity.this);
    mp.prepare();
    mp.start();
4

1 に答える 1

1
mp.prepare();
mp.start();

prepare() は非同期です。つまり、既に mp.start を呼び出している場合は終了しない可能性があります。「作成されていないサーフェス」とはどういう意味ですか? 動画が再生されないということですか?とにかく、 を使用してMediaPlayer.OnPreparedListener、 でメディアを開始する必要がありますonPrepared()

于 2011-10-28T16:46:31.933 に答える