5

ブラウザー内で再生する特定のサイト (m.aveamuzik.com) からの rtsp オーディオ ストリームがあります。MediaPlayerクラスを使用して同じストリームを再生しようとすると、MEDIA_ERROR_UNKNOWN(extra= で-2147483648) 取得されます。エラーは十分に文書化されていませんが、少しグーグルで調べたところ、おそらくサポートされていないメディア形式が原因であることがわかりました.

私の質問は、MediaPlayerクラスが一部のフォーマットをサポートしていない場合、組み込みブラウザはどのように再生するのですか? また、MediaPlayerクラスの代わりにブラウザが使用するのと同じメカニズムをコードで使用するにはどうすればよいですか?

編集1: @ジョー

次のコードを試しました:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(streamURL));
startActivity(intent);

MX PlayerBSPlayerは、ファイルを開くオプションとして表示されましたが、関連するものは何もありませんでしたAudioPreviewActivity。実際、私の URL は であるため、これは非常に合理的ですが、rtspインテント フィルタはとURI のタイプAudioPreviewActivityのみです。httpfilecontent

4

2 に答える 2

3

事実

ブラウザには、ほとんどの場合、ビデオ ソースをページから取り除き、ネイティブ プレーヤーで起動するように設定された追加機能があります。この機能は WebView に組み込まれておらず、ネイティブ プレーヤーは、再生できるようにするために URI として渡す必要があるものについて非常にうるさいです。

デフォルトの Android ブラウザでは Gingerbread 以降で動作します。

考えられる説明

おそらくMediaPlayer、Android ブラウザーのように使用することはありません。さらに役立つコードを投稿してください。

さらなるヘルプ

  • にはMediaPlayer4.0 より前に多くのバグがありました (多くの RTSP バグが修正されました)。
  • W3C で説明されている Web Audio API:リンク
  • Android でサポートされているすべてのメディア形式とプロトコルの詳細なリストは次のとおりです:リンク
  • テストページ:リンク
  • この完全なブログ投稿も、Android のメディア ストリーミングについて役立ちました:リンク
于 2012-11-21T09:56:48.387 に答える
1

ブラウザで再生しているときにこの他の質問のスクリーンショットのように見える場合は、音楽アプリのAudioPreviewアクティビティである必要があります。

manifest のstartActivity()IntentFilter の 1 つに一致する Intent で呼び出すだけで起動できるはずです。

于 2012-11-21T22:44:30.713 に答える