1. ホーム
  2. android

[解決済み] メディアプレーヤーが状態0で呼び出され、エラー(-38,0)

2022-05-14 19:20:55

質問

私は現在、インターネットラジオ局をストリーミングするシンプルなアプリを設計しようとしています。私は放送局の 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)

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

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

どのように解決するのですか。

まず mediaPlayer.start() の中で onPrepared メソッドをリスナーを使って呼び出しています。 このエラーが発生するのは、あなたが mediaPlayer.start() を呼び出しているためです。

以下は、その方法です。

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

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