. Bu yöntemi çağırır duymaz, UI'nin hızlı aygıtlarda bile dolanması. Performansı iyileştirmenin bir yolu var mı? bu konu ile diğer tek iplik burada bulabiliriz:
https://groups.google.com/forum/#!topic/android-developers/eAAEAEDcksM
ama oldukça eski ve tatmin edici bir cevap yoktur.Android VideoView setVideoURI blokları UI iş parçacığı
cevap
VideoView myVideoView = (VideoView)findViewById(R.id.myvideoview);
myVideoView.setVideoURI(Uri.parse(url));
myVideoView.setMediaController(new MediaController(this));
myVideoView.requestFocus();
myVideoView.start();
i medya oynatma için yeni bir iş parçacığı başlatır size
Bu bana hangi şekilde yardım etmeli? Zaten setVideoURI aramasını kullanıyorum ve bu benim performans sorunlarımın sebebi de bu. – Alf
VideoView.setVideoURI() yardımcı olacaktır olabilir bu kodu kullanılan, ama olabilir ekstra delay.The sadece çözümü neden medya çözme parçasıdır bazı NDK kesmek kullanıyor için Tamam olabilir ama ben bir işleyici içine setVideoUri() yöntemi olduğu yeri ne yaptık bana
Aslında internet bağlantısının yavaş olması durumunda engellemenin çok daha şiddetli olduğunu görüyorum. Bu, kod çözmeye karşı gecikmelerin tek kaynağıdır. Ya da medya kod çözmenin neden bozuk bir bağlantıda daha fazla engelleneceğine dair bir açıklama var mı? – Alf
Gerçekten emin değilim, kaynakta ne yaptığınıza bağlı olarak, ancak bağlantı yavaşsa, kod çözücünün daha fazla personeli olması gerekir, çünkü genellikle arabellek beklemenin arasında arabelleğin temizlenmemesinden kaynaklanan işlemleri tekrar eder ve yapar paketlerde –
için değil worths yapan bir ilmek yani
new Handler(Looper.myLooper()).post(new Runnable(){
@Override
public void run(){
videoview.setVideoUri("uri");
}
});
Bu ana UI iş parçacığı dışında kod çalışır, ancak kod ben VideoView UI iş parçacığı engelleme değil bulduk
istisna atma olmadan çalıştırılabilir, böylece bir sancı durmaya devam eder. Aslında "android.media.VOLUME_CHANGED_ACTION" kullanıcı arabiriminde engelleme alıcısında.
Benim sorunum kodu: hacim alıcısından denilen
public void setVolume(int volume) {
try {
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
ivVoice.setTag(volume != 0);
updateVoiceImage();
} catch (Exception e) {
e.printStackTrace();
}
}
setVolume, bu çağırdı 1000+ kez 5s mp4 oynarken. Ana iş parçacığı çok uzun sürüyor.
audioManager.setStreamVolume
çözüm kodu:
public void setVolume(int volume) {
try {
//if volume not changed , do nothing.
if(volume != lastVolume){
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,volume,0);
ivVoice.setTag(volume != 0);
updateVoiceImage();
lastVolume = volume;
}
} catch (Exception e) {
e.printStackTrace();
}
}
Yani, hacim alıcısını kontrol edin. Belki size yardımcı olabilir.
- 1. CountdownTimer UI iş parçacığı güncelleştiren çalışan iş parçacığı içinde
- 2. UI iş parçacığı üzerinde görev sürdürme, arka plan iş parçacığı
- 3. Qt: Arka plan iş parçacığı yenileme UI iş parçacığı
- 4. NSURLSessionDataTask tamamlama blokları ana iş parçacığı üzerinde mi çağrılıyor?
- 5. BackgroundWorker iş parçacığı WinForms UI güncelleştirmesi
- 6. UI iş parçacığı olmadan görev senkronizasyonu
- 7. UI iş parçacığı dağıtıcısını nasıl alabilirim?
- 8. WPF Denetimi Ayrı UI İş Parçacığı On?
- 9. Görev sürekliliği engelleniyor UI iş parçacığı
- 10. VideoView, VideoView
- 11. Android VideoView Düzeni Elements
- 12. UI'dan ayrı iş parçacığı
- 13. iş parçacığı içinde yerel depolama iş parçacığı
- 14. İş parçacığı tanıtıcısı iş parçacığı tanıtıcısı
- 15. Ana İş Parçacığı Denetimi: Bir arka plan iş parçacığı üzerinde UI API çağrısı: - [UIApplication temsilci]
- 16. iş parçacığı afinitesi
- 17. iş parçacığı
- 18. Bir UI iş parçacığının tanımı nedir? Bir .NET uygulamasında yalnızca bir UI iş parçacığı var mı?
- 19. Ayrı iş parçacığı içinde
- 20. Android kaç tane iş parçacığı gidebilirim?
- 21. Android iş parçacığı görünür görününceye kadar bekleyin
- 22. invalidate() bir iş parçacığı içinde android uygulaması
- 23. Tanımlama Bilgileri (veya Üstbilgiler) ile VideoView
- 24. Android VideoView Video oynatılamıyor mp4
- 25. WPF'de UI dispatcher.begininvoke yöntemi iş parçacığı güvenli mi?
- 26. Farklı bir UI iş parçacığı içinde bir DocumentViewer içeriğini yazdırma
- 27. JavaFX UI Platform.runLater() ile birçok iş parçacığı kullanarak donma
- 28. Neden Await sonra kod UI iş parçacığı üzerinde çalışmaz?
- 29. WebView'ün loadUrl yöntemi UI iş parçacığı üzerinde çalışıyor mu?
- 30. Rxjava AndroidSchedulers.mainThread() UI iş parçacığı anlamına mı geliyor?
setVideoURI sadece engellemeden dönmelidir, böylece içten) mMediaPlayer.prepareAsync (call görünüyor ama öyle değil. Bu nedenle VideoView’den MediaPlayer’a geçiş yapmak da yardımcı olmaz. – Alf
bir asynctask içine kodunuzu koymak denediniz mi? –
Bu, setVideoUri() 'yi her çağırdığınızda gerçekleşir mi? Ya da sadece ikinci defadan itibaren mi? – matiash