2013-04-19 31 views
6

Birkaç gün boyunca etrafa bakıyorum ama nasıl yapılacağına dair net bir cevap alamıyorum.MediaPlayer'a anında ses/video şifresini çözme

Sdcard'ımda bazı şifrelenmiş ses/video dosyaları var, MediaPlayer'a göndereceği oynatmayı ve şifre çözme işlemi aynı anda çalışıyorken oynatmaya başlamak istiyorum. Başlangıçta bir arabellek yaratır ve oynatmaya başlamak için yeterli ilk veri olduğunda, MediaPlayer oynamaya başlar ve arka planda şifrelenerek veriyi göndermeye devam eder.

Çevresine baktım ve çözümün çoğunun bir localhttpserver'a sahip olduğunu göstermesi ve ardından dosyayı sunucuya göndermesi gibi görünüyor ve geri geldiğinde, ses/videoyu canlı akış gibi oynatmaya başlayacak. Bilmediğim şifre çözme kodu nereden geliyor? Sunucu tarafında mı? Eğer öyleyse, hangi kısmında?

Bu http://libeasy.alwaysdata.net/ çözümünü de görebildiğim de, bunu çözebiliyorum, ancak bunun nasıl çalıştığını anlayamıyorum. Bunun bir localserver yarattığını biliyorum, ama Cipher bölümünde, kendi şifre çözme işlemim nasıl oluyor?

private void myPlay(String path) { 
    mServer = new LocalSingleHttpServer(); 
    mServer.setCipher(myGetCipher()); 
    mServer.start(); 
    path = mServer.getURL(path); 
    mVideoView.setVideoPath(path); 
    mVideoView.start(); 
} 
public void onCompletion(MediaPlayer mp) { // MediaPlayer.OnCompletionListener interface 
    mServer.stop(); 
} 

Android geliştirme konusunda oldukça yeni olduğum için, belirsiz veya başka bir şey olursa benimle birlikte olmayın.

Teşekkür ederiz.

+0

bunun için herhangi bir çözüm aldın: Böyle
Kod şey (bir yere yetişmeye istisnalar eklemek gerekir)? Ayrıca şifrelenmiş video oynatamıyorum – user1444172

+0

Bu, en iyi çözüm değildir çünkü çevrimiçi olmadıkça videoyu izleyemezsiniz. Ayrıca internet bağlantı hızına bağlı kalmanızı sağlar. Aygıtta yerel olarak bu işi yapan bir şey aramaya çalışın. Dosyalar küçük boyutluysa. Bunu bir kez yapabilirsiniz, ancak büyük boyutlu dosyalarla uğraşıyorsanız bu işe yaramaz. –

cevap

0

Şifre çözme, bir Cipher sağlarsanız, http sunucusu tarafından yapılır.

import javax.crypto.Cipher; 
private Cipher myGetCipher() { 
    Cipher c = Cipher.getInstance("RC4"); 
    c.init(Cipher.DECRYPT_MODE, new SecretKeySpec("myPassword".getBytes(), "RC4")); 
    return c 
} 
+0

Merhaba @ libeasy, Gönderileri farklı yerlerden takip ediyorum. Aşağıdaki gibi denendi: Ancak şifrelenmiş video aynı anahtar ve şifreyle oynatılamıyor. Lütfen. Aşağıdaki kodumu aşağıya bakın: (Kodumu ayrı yanıt olarak veriyorum, bu yorum alanı yeterli değil. – user1444172

+0

Bu tür bir yardım için lütfen sitede belirtilen bağlantıyı kullanın. Çok yardımcı olmaz, bunun yerine gerçek bir rapor sağlar, logcat ve cihaz ve içerik ile ilgili detaylar. – libeasy

İlgili konular