4

URLからオーディオをストリーミングしようとしています。このコードは他のURLでも正常に機能しますが、そのうちの1つではメソッドで失敗し、次のOnPreparedエラーコードを返します:(1、-2147483648)。パーミッションが原因だと言う人もいますが、リモートファイルなのでパーミッションを設定できません。VLCやiTunesなどの他のアプリでURLを試しましたが、正常に機能しています。私のコードはここにあります:

private void prepareradio() {
    player = new MediaPlayer();
    player.setAudioStreamType(MODE_WORLD_READABLE);
    try {
        player.setDataSource(url);

    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    player.setOnErrorListener(new OnErrorListener(){
        public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
            Toast.makeText(getApplicationContext(),"An error happened while preparing radio",Toast.LENGTH_LONG).show();
            prepareradio();
            playe.setEnabled(true);
            hidenot();
            return false;
        }
    });
4

3 に答える 3

3

フローズンヨーグルトとジンジャーブレッドでも同じエラーが発生していました。より高いAndroidでは、同じビデオがうまく再生されました。最後に、多くの調査を行った後、HttpsUrlをHttpUrl&Bingoに変更してみました。それは私の問題を解決しました。私はAmazonS3サーバーを使用していたので、URLの「https」を「http」に置き換えるだけで十分でした。

  videoUrl= videoUrl.replaceFirst("https", "http"); 

PS:H.264を使用している場合に古いバージョンをサポートするには、ビデオがベースラインでエンコードされていることを確認してください。

于 2013-05-22T10:02:17.973 に答える
2

Android 3.1より前のデバイスでテストしている場合は、AACPを再生できない可能性があります(ストリーム(AAC +)ストリームの情報ページに表示されます)。

ストリームの情報ページ:
ここに画像の説明を入力してください

ターゲットデバイスで再生できるストリームを確認するには、公式ドキュメントを確認してください:http: //developer.android.com/reference/android/media/AudioManager.html

次のaacpチェックアウトを処理する方法を探している場合:
https ://stackoverflow.com/a/8833346/200272

于 2012-05-29T10:16:29.180 に答える
0

ご覧のとおり、このストリームはmediaPlayerではサポートされていません。AndroidはAACLC/ LTPをサポートしていますが、ストリームはaacpです。これがあなたの問題の根本的な原因かもしれないと思います。

于 2012-05-29T09:02:18.397 に答える