如何在我的应用程序上仅流式传输来自 youtube 视频的音频数据?
Posted
技术标签:
【中文标题】如何在我的应用程序上仅流式传输来自 youtube 视频的音频数据?【英文标题】:How to stream only audio data from youtube video on my application? 【发布时间】:2012-03-04 01:47:59 【问题描述】:我想开发一个应用程序来显示来自YouTube 的视频列表,当用户点击Youtube 视频时,我的应用程序将开始播放其音频。我遇到了一个解决方案,首先下载YouTube 视频并提取音频,但为了加快进程,我想将音频位直接传输到应用程序的音频播放器而不是视频。 换句话说,我想在我的应用程序中流式传输YouTube 音频而不是视频。
【问题讨论】:
我不相信 YouTube 提供纯音频下载/流。如果您可以控制视频的播放方式,那么您可以简单地隐藏(并且可能通过不解码来节省 CPU 功率)视频,但我怀疑这是您能做的最好的事情。另外,这是什么平台/语言?这可能很重要。 【参考方案1】:请尝试使用以下代码从视频流中提取音频:
// the video URL is the following
String url = "http://137.110.92.231/~chenyu/BBC.mp4";
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudiostreamType(AudioManager.STREAM_MUSIC);
try
mediaPlayer.setDataSource(url);
catch (IOException e)
e.printStackTrace();
try
mediaPlayer.prepare(); // might take long! (for buffering, etc)
catch (IOException e)
e.printStackTrace();
mediaPlayer.start();
【讨论】:
MediaPlayer
类在哪里?任何外部库?请添加更多解释。【参考方案2】:
听起来您已经完成了大部分工作。您的应用程序可以列出视频并下载选定的视频。您只需要一个直接从视频文件播放音频的基础设施。
YouTube 视频可以是 FLV 或 MP4 文件。这些文件中可以是 MP3 或 AAC 音频(其他一些音频编解码器也是可能的,但您不会在 YouTube 上遇到这些)。这意味着您的应用需要知道如何直接拆分 FLV 和 MP4 文件,以及如何将 MP3 和 AAC 音频直接解码为 PCM。有一些库可以帮助完成这些任务,具体取决于您的语言和平台。
【讨论】:
以上是关于如何在我的应用程序上仅流式传输来自 youtube 视频的音频数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在我的 Android 应用程序中播放 YouTube 视频?
如何在我的 ios 应用程序中嵌入 youtube 或 facebook 直播?
当我们使用 WebView 流式传输视频时如何获得对 MoviePlayer 的控制
如何从本机 ios 应用程序实时流式传输到 youtube 帐户