2012-02-12 5 views
10

YouTubeのビデオのリストを表示するアプリケーションを開発したいと思います。ユーザーがYoutubeビデオをクリックすると、アプリケーションのオーディオ再生が開始されます。私は最初にYouTubeビデオをダウンロードしてオーディオを抽出するという解決策に出くわしましたが、プロセスをスピードアップするために、ビデオの代わりにオーディオビットをアプリケーションのオーディオプレーヤーに直接転送したいと思います。 つまり、アプリケーションのビデオの代わりにYouTubeオーディオをストリーミングしたいとします。私のアプリケーションでYouTubeビデオからオーディオデータのみをストリーミングする方法は?

+1

を私はYouTubeが音声のみのダウンロード/ストリームを提供しています信じていません。ビデオの再生方法を制御できれば、ビデオを隠すだけで(場合によってはデコードしないでCPUパワーを節約することもできます)、可能な限りベストだと思います。また、これはどのプラットフォーム/言語ですか?それは重要かもしれない。 – perelman

答えて

5

あなたはすでにそこにいるようです。あなたのアプリケーションには、ビデオをリストし、選択したものをダウンロードする方法があります。ビデオファイルからオーディオを直接再生するためのインフラストラクチャが必要です。

YouTube動画は、FLVファイルでも、MP4ファイルでもかまいません。これらのファイルの中には、MP3やAACのオーディオがあります(他のオーディオコーデックも可能ですが、YouTubeでそれらに遭遇することはありません)。これは、あなたのアプリがFLVとMP4ファイルを直接分離する方法と、MP3とAACオーディオをPCMに直接デコードする方法を知る必要があることを意味します。言語やプラットフォームによっては、これらのタスクを支援するライブラリがあります。

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(); 
関連する問題