如何在我的应用程序中仅传输来自youtube视频的音频数据?

时间:2012-02-12 07:57:27

标签: video youtube youtube-api video-streaming html5-audio

我想开发一个应用程序,它会显示来自YouTube的视频列表,当用户点击Youtube视频时,我的应用程序将开始播放其音频。我遇到了首先下载YouTube视频并提取音频的解决方案,但为了加快这个过程,我想直接将音频位传输到应用程序的音频播放器而不是视频。 换句话说,我想在我的应用中传输YouTube音频而不是视频。

2 个答案:

答案 0 :(得分:5)

听起来你已经大部分都在那里了。您的应用程序可以列出视频并下载所选视频。您只需要一个直接从视频文件播放音频的基础设施。

YouTube视频可以是FLV或MP4文件。在这些文件中可以是MP3或AAC音频(其他一些音频编解码器是可能的,但你不会在YouTube上遇到它们)。这意味着您的应用需要知道如何直接拆分FLV和MP4文件,以及如何将MP3和AAC音频直接解码为PCM。根据您的语言和平台,有些库可以帮助完成这些任务。

答案 1 :(得分:3)

请尝试使用以下代码从视频流中提取音频:

// 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();