メディアプレーヤーが状態0で呼び出されました、エラー(-38,0)質問する

メディアプレーヤーが状態0で呼び出されました、エラー(-38,0)質問する

私は現在、インターネットラジオ局をストリーミングするシンプルなアプリを設計しようとしています。私はその局のURLを持っており、メディアプレーヤーを次のように設定しています。

    MediaPlayer mediaPlayer = new MediaPlayer();
    try {
        mediaPlayer.setDataSource(URL);
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (SecurityException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        mediaPlayer.prepare();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    mediaPlayer.start();

エミュレート時にプログラムはクラッシュしませんが、何も再生されず、次のエラーが表示されます。

start called in state 0

そしてそのすぐ下には

Error (-38,0)

これが何を意味するのか誰か知っていますか?

これらの状態エラーについて少し読んでみましたが、私のプロジェクトに当てはまるものは見つかりませんでした。

ベストアンサー1

リスナーを使用してメソッドを呼び出す必要があります。準備状態に達する前に呼び出しているため、このエラーが発生mediaPlayer.start()します。onPreparedmediaPlayer.start()

やり方は次のとおりです:

mp.setDataSource(url); 
mp.setOnPreparedListener(this);
mp.prepareAsync();

public void onPrepared(MediaPlayer player) {
    player.start();
}

おすすめ記事