最近、Android でAAC+ ラジオ ストリームをストリーミングMediaPlayer
する際の問題に直面しています。ドキュメントに関しては、Android 4.1 で AAC+ のストリーミングをサポートする必要があります。(テスト デバイスは Android 4.2.2 を搭載した Nexus 2 です)
関連する質問をいくつか見つけました (こちら、こちら、またはこちらを確認してください) が、それらは主に古い Android バージョンに関連しているか、4.1 のリリースより前の日付です。AACPlayerAndroidライブラリを見つけましたが、そこでライセンスを購入する必要があります..
AACPlus ストリームをストリーミングしようとすると、MediaPlayer はMediaPlayerError (1,-2147483648)
「サポートされていないメディア形式」として定義されている をスローします。ただし、エミュレーターで同じ AAC+ ストリームを開始すると、正常に動作します!
私がこれまでに試したこと:
エミュレータで同じコードを試すとうまくいく?!? (なぜ..ローカルマシンでコーデックがサポートされているのでしょうか?)
4.1 または 4.2 で他の 2 つのデバイスをテストしても失敗します
手動ヘッダーと を使用して AAC+ ストリームを設定しますが
setDataSource(String path)
、機能しません (http ヘッダーの変更も失敗します)。新しいSimpleMediaPlayerプロジェクトをセットアップします->失敗します
Android デバイスが間違った URL にリダイレクトされた場合、ネットワーク トラフィックをチェックしようとしています。実際に を
Charles
使ってデバイスを接続しましProxy
たが、Android ブラウザしか監視できませんでした。それでもリダイレクトは正しいと思います!
これが私の Streaming.class の setDataSource の実装です
public AmplifyMediaPlayer(PlayerStationObject playerStationObject, Context context) {
super();
this.setAudioStreamType(AudioManager.STREAM_MUSIC);
this.mCurrentStationObject = playerStationObject;
try {
//AAC+ TestStream #1: NOT WORKING
//Uri uri = Uri.parse("http://up-gc2.webnow.com.br/alpha.aac");
//AAC+ TestStream #2: NOT WORKING
//Audio codec: 64 kbit/s 44.1 kHz AAC+, 128 kbit/s 44.1 kHz MP3
//Uri uri = Uri.parse("http://relay.publicdomainproject.org:80/jazz_swing.aac ");
//Setting HTTP header for fixing some issues with normal setDataSource Header from Android
//User-Agent "iTunes" was set to force re-direct to shoutcast streaming url
Map<String, String> headers = new HashMap<String, String>();
headers.put("User-Agent", "iTunes");
setDataSource(context, uri, headers);
//AAC Codec works fine...
//setDataSource("http://fri.net.pl:8000/fri");
prepareAsync();
//...
だから実際に私は次の質問をしています:
サポートされているはずの Android 4.1 以降で ACC+ ストリームを再生できないのはなぜですか?
Android から MediaPlayer クラスで正常にストリーミングできる ACC+ ストリームを持っている人はいますか? (私のプレーヤー統合に何かがあるかどうかを確認するためだけに)
ACC+ がサポートされていない場合、問題をどのように解決したか、適切なライブラリまたはサンプル プロジェクトを知っていますか?
ありがとう、または提案やアドバイス!
テストしたその他の AAC+ ストリーム: http://jam-aacp.rautemusik.fm
編集 これまでのところ、私は次のようになりました:それは不可能です。AACP-Decoder Library は優れたソリューションですが、まだ安定していません。Androidがこれをすぐにサポートすることを願っています。同意しない場合は、コメントしてください。