11

Android の MediaPlayer を使用して、アプリケーションで URL ストリームを設定しています。終了コードとエラー (1, -2147483648) に対処するために、いくつかの異なる投稿を試みました。

いくつかの異なるストリームを試しましたが、MediaPlayer が機能しないようです。Google の ExoPlayer に移行することを考えましたが、それはもう少し複雑で、何か不足している場合に備えてジャンプしたくありません。

メディアプレーヤー:

private MediaPlayer player;
String url = "http://199.180.75.118:80/stream";     //temp stream
private void initializeMediaPlayer() {
    player = new MediaPlayer();
    player.setAudioAttributes( new AudioAttributes.Builder()
        .setUsage(AudioAttributes.USAGE_MEDIA)
        .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
        .build());

    try { 
        player.setDataSource(url);
        player.prepareAsync();
        player.setOnPreparedListener(new OnPreparedListener() {
            public void onPrepared(MediaPlayer mp) {
                mp.start();
            }
        });
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } 
}

Androidの許可も含めました:

<uses-permission android:name="android.permission.INTERNET" /> 

元のストリーム タイプを使用しようとしました (ただし、非推奨の警告がスローされます)。

player.setAudioStreamType(AudioManager.STREAM_MUSIC);

その代わりに、問題のタイトルを指定した代わりに.setAudioAttributes(...) 実行しようとしただけを使用しましたが、それでも同じエラーが発生します。私は実際のエラー定義を調べましたが、運もありません( Android MediaPlayer error (1, -2147483648) )。他の複数のストリームを試したので、ソースの問題ではないと思います。エラーの原因となっている可能性のある重要なことをスキップしている場合はお知らせください。prepare()prepareAsync()

編集 それがまったく役立つ場合、私は自分の呼び出しを調べていて、MediaPlayer が決して呼び出していないことがわかりましたonPrepared(...)。テストしたすべてのメディアの Content-Types を確認したところ、すべてオーディオ/MPEG ヘッダーでした。そのため、MediaPlay が onPrepared にアクセスしていない理由がわかりません。

4

4 に答える 4