有没有办法在 Android API 中播放原始音频/视频流?

Posted

技术标签:

【中文标题】有没有办法在 Android API 中播放原始音频/视频流?【英文标题】:Is There a Way to Playback Raw Audio/Video Streams in Android API's? 【发布时间】:2012-03-20 04:27:42 【问题描述】:

我有一个 Vorbis 流,我可以在必要时将其解码为 PCM,并且我有一个原始 h264 流,在容器中时,android 支持所有这三个流。想知道是否有任何方法可以在没有任何容器的情况下手动将视频和音频样本输入 android MediaPlayer。我想我将不得不覆盖 MediaPlayer 中的方法。有没有人有这方面的经验或有更简单的方法来做到这一点?我无法想象这是不可能的......

【问题讨论】:

【参考方案1】:

您可能能够播放音频 pcm 样本(为此,我猜您可能还需要放置一个 wav 标头),但您可能无法在没有容器的情况下播放 H264 基本流。在媒体框架(Stagefright)中,为各种容器格式注册了嗅探器函数,可以判断需要使用哪种解析器,然后创建提取器(解析器)。我认为您无法使用 Android 的内置媒体框架从应用程序中播放 H264 基本流。

【讨论】:

我想我可能能够让 pcm 流工作。我想如果我要绕过容器嗅探器,StageFright 至少需要持续时间、SPS 和 PPS NAL 以及视频样本的时间戳?我想知道netflix是怎么做到的?感谢您的回答。这不是我想要的,但没关系... :-) 除非您在框架中进行更改,否则您可能无法告诉 Stagefright 您只是发送 H264 NAL 单元/持续时间等。我不确定 netflix 是否使用 Android 框架但它当然可以使用 NDK,这样它就可以拥有自己的媒体播放器并按照自己想要的方式使用它(不使用 Android 媒体框架)。 我认为你是对的。我认为 Netflix 正在使用 NDK。无论如何,我看不到在 Android SDK 中管理碎片容器。那太糟糕了。感谢您的回复。

以上是关于有没有办法在 Android API 中播放原始音频/视频流?的主要内容,如果未能解决你的问题,请参考以下文章

在android中播放音轨中的音频

有没有办法使用非高级帐户使用 Spotify API 搜索歌曲但不播放它们?

有没有办法使用 YouTube API v3 获取“稍后观看”播放列表?

有没有办法给某人打电话并在android中播放音频文件?

Android:视频未从原始文件夹播放

Win10 耳机无声音,扬声器有声音的解决办法