YouTube'dan videoların bir listesini görüntüleyen bir uygulama geliştirmek ve kullanıcı bir Youtube videosunu tıkladığında, uygulamamın kendi sesini çalmaya başlayacaktır. İlk önce YouTube videosunu indirmek ve ses çıkarmak için bir çözüme rastladım ama işlemi hızlandırmak için ses bitlerini doğrudan uygulamanın yerine videonun ses oynatıcısına aktarmak istiyorum. Başka bir deyişle, uygulamada video yerine YouTube ses akışı yapmak istiyorum.Uygulamamdaki youtube videosundan sadece ses verilerini nasıl aktarabilirim?
10
A
cevap
5
Zaten yolun çoğunda olduğunuz gibi geliyor. Uygulamanızın videoları listelemenin ve seçili olanları indirmenin bir yolu var. Ses dosyalarını doğrudan video dosyalarından oynatmak için bir altyapıya ihtiyacınız var.
YouTube videoları FLV veya MP4 dosyaları olabilir. Bu dosyaların içinde MP3 veya AAC ses olabilir (bazı diğer ses kodekleri mümkündür, ancak YouTube'da bunlarla karşılaşmazsınız). Bu, uygulamanızın doğrudan FLV ve MP4 dosyalarını nasıl ayırdığını ve MP3 ve AAC ses dosyalarını doğrudan PCM'ye nasıl çözeceğinizi bilmesi gerektiği anlamına gelir. Dilinize ve platformunuza bağlı olarak bu görevlere yardımcı olacak kütüphaneler vardır.
3
Aşağıdaki kodu kullanarak video akışı, ses çıkarmak deneyin:
// 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 salt ses indir/akışı sunuyor inanmıyorum. Videonun nasıl oynatıldığını kontrol ederseniz, videoyu gizlemek (ve belki de kod çözmeyerek CPU gücünü koruyabilirsiniz), ancak yapabileceğinizin en iyisi olduğundan şüpheleniyorum. Ayrıca, hangi platform/dil bu? Önemli olabilir. – perelman