n00b burada (ilk Android projesi). Android ürün yazılımı ile entegre edilmiş özel bir video kod çözücüsüne sahibim. MediaPlayerInterface öğesinden devraldığı bir sınıfı içeren bir .so dosyası ve özel codec sınıfının örneklerini uygun dosya türleri için create() fabrika işlevinden döndürmek üzere özel bir MediaPlayerService uygulamasıdır.Android'de özel bir kodek oynatmak için özel bir ortam yürütücüsü nasıl oluşturabilirim?
Bu codec'i, .so dosyasını libs/armeabi klasörüne yerleştirip JNI aracılığıyla çağırarak, ürün yazılımındaki kodek içermeyen telefonlara yüklenebilen bir video oynatıcı uygulamasının parçası olarak kullanmak istiyorum.
this question cevabından bunu MediaPlayer çerçevesinde yapmanın mümkün olmadığını anlıyorum ve sıfırdan yeni bir medya oynatıcı oluşturmak zorundayım. Başlangıç olarak, Java'da bir kullanıcı arayüzünü uyguladıktan sonra, SurfaceView'u genişleten ve videoları oynatmak için MediaPlayer sınıfının bir örneğini kullanan özel bir görünüm (VideoView yerine) kullanmak üzere ayarladım. Daha sonra bu özel MediaPlayer örneğini özel bir medya oynatıcı Java sınıfıyla değiştirdim. JNI arayüzünü kurdum, android_media_MediaPlayer.cpp yolunu taklit ediyor ve JNI kodunda MediaPlayer C++ sınıfını çağırıyorum. Şimdi, 'u özel C++ medya oynatıcı sınıfı ile değiştirmem gerekiyor.
Sorun yaşamaya başladığım yer burası. Özel bir oyuncuyu uygulamak için önerilen yaklaşım nedir? Biri var mı Bu şeylerden herhangi biri için, kaynakta trolün yanı sıra bazı çevrimiçi belgeler var mı? Çerçevenin ne kadarını kullanabilirim ve kendimi ne kadar yeniden kullanmam gerekir? MediaPlayerService'ye kendi eşimi uygulamak zorunda mıyım?
Herhangi bir ipucu büyük beğeni topladı.
Cevabınız için teşekkür ederiz. İlk soruyu yayınlamadan önce MediaPlayer arayüzü için Android kaynak kodunu okudum. Benzer çizgiler takip etmek mümkün görünmüyor. Özellikle, yerleşik MediaPlayer yerleşik olmayan uygulamalara reddedilen ACCESS_SURFACE_FLINGER iznini kullanır. Kullanıcıların player'ımı indirip yüklemelerini, telefona önceden yüklememiş olmalarını istiyorum. – samgak
Merhaba, android için özel codec'in nasıl uygulanacağına ilişkin son bulgularınızı paylaşın. @samgak – HoseinIT