着信AMR_NBをストリーミングしようとしています。シーク可能なファイルが必要なため、MediaPlayerを直接使用することはできません。MediaCodecを使用したいのですが、MediaCodecを使用するには、presentationTimeなどを提供するMediaExtractorが必要です(私は...訂正してください!)。本当?MediaExtractorなしでMediaCodecを使用できますか?
MediaExtractorはシーク可能なファイルを必要としているようです。ドキュメントには、setDataSource操作の1つについてのみ具体的に記載されていますが、他の操作のいずれかを使用しようとすると、シークの試行が失敗したために失敗しました。
では、着信AMRストリームを再生するにはどうすればよいですか?受信データをファイルに保存し、そのファイルのコピーを定期的に作成してMediaPlayerにフィードするスキームを知っていますが、本当に正直なストリーミングソリューションを見つけたいと思います。
MediaExtractorを使用せずにMediaCodecを使用することは可能ですか?もしそうなら、MediaCodec.createDecoderByTypeに渡すプレゼンテーション時間と文字列を見つけるにはどうすればよいですか?ドキュメントには、「audio / 3gpp」が必要であると記載されていますが、これを使用しようとすると、次のエラーが発生します。
codec = MediaCodec.createDecoderByType("audio/3gpp");
01-02 03:59:36.980: E/OMXMaster(21605): A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
ですから、MediaCodecにアクセスする方法もわかりません。