私は現在、インターネットラジオ局をストリーミングするシンプルなアプリを設計しようとしています。私はその局の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()
します。onPrepared
mediaPlayer.start()
やり方は次のとおりです:
mp.setDataSource(url);
mp.setOnPreparedListener(this);
mp.prepareAsync();
public void onPrepared(MediaPlayer player) {
player.start();
}