Я хочу разработать приложение, которое отобразит список видео от 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();
Я не верю, что YouTube предлагает аудио-только скачать/поток. Если у вас есть контроль над воспроизведением видео, вы можете просто скрыть (и, возможно, сохранить мощность процессора, не декодируя) видео, но я подозреваю, что это лучшее, что вы можете сделать. Кроме того, на какой платформе/языке это происходит? Это может иметь значение. – perelman