YouTube의 비디오 목록을 표시하는 응용 프로그램을 개발하고 사용자가 Youtube 비디오를 클릭하면 응용 프로그램에서 해당 오디오가 재생되기 시작합니다. YouTube 비디오를 먼저 다운로드하고 오디오를 추출하는 방법을 모색했지만 프로세스 속도를 높이기 위해 비디오 대신 응용 프로그램의 오디오 플레이어에 오디오 비트를 직접 전송하려고합니다. 즉, 내 응용 프로그램에 비디오 대신 오디오 YouTube을 스트리밍하고 싶습니다.내 애플리케이션에서 YouTube 비디오의 오디오 데이터 만 스트리밍하는 방법은 무엇입니까?
10
A
답변
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();
을 내가 유튜브 오디오 전용 다운로드/스트림을 제공합니다 생각하지 않습니다. 비디오가 재생되는 방식을 제어 할 수 있다면 비디오를 숨기고 (가능하면 디코딩하지 않음으로써 CPU 성능을 절약 할 수는 있지만) 할 수있는 최선의 방법이라고 생각합니다. 또한이 플랫폼/언어는 무엇입니까? 그건 중요 하거든. – perelman