djc*_*535 5 android media-player android-mediaplayer
我正在尝试流式传入AMR_NB。我不能直接使用MediaPlayer,因为它需要可搜索的文件。我想使用MediaCodec,但是要使用MediaCodec,我需要(我认为...请纠正我!)MediaExtractor给我诸如PresentationTime之类的东西。真的吗?我可以在没有MediaExtractor的情况下使用MediaCodec吗?
MediaExtractor似乎需要可搜索的文件。该文档仅专门针对setDataSource操作之一进行了说明,但是当我尝试使用其他操作时,由于搜索尝试失败而失败。
那么,我该怎么做才能播放传入的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.
Run Code Online (Sandbox Code Playgroud)
所以我也不知道如何获得MediaCodec。
小智 0
“我不能直接使用 MediaPlayer,因为它需要一个可查找的文件” 这通常不是真的。我希望您在您的直播中尝试一下并准确报告发生的情况。
“我可以在没有 MediaExtractor 的情况下使用 MediaCodec 吗?” 我对此表示怀疑:我相信它们是设计来一起使用的。
我已经使用这些组件来播放流。但是,MediaExtractor 有一些未记录的限制(据我所知)。因此,使用一个小代理服务器来为其提供可以消化的东西。我有 1 个线程来运行 MediaExtractor,另一个线程从 MediaCodec 获取输出。然后我必须避免死锁并应对同步。但如果你只想打前锋的话,这也不算太糟糕。那么你就只剩下如何停止的问题了!
我建议您先尝试 MediaPlayer。否则,如果您有足够的兴趣尝试 MediaExtractor,我们可以分享我们关于它会消化什么和不会消化什么的发现。不要认为任何事情都是理所当然的。例如,它似乎可以播放我的 MP3 文件,但无法发现它们的持续时间,或查找它们!
| 归档时间: |
|
| 查看次数: |
2854 次 |
| 最近记录: |