Videolardan oluşan bir oynatma listesi uygulamaya çalışıyorum; böylece bir videodan diğerine sorunsuz geçişleri. MediaPlayer nesnesinde, videoyu önceden oynatmaya hazır olacak bir readyeasync() yöntemi vardır, böylece oynatmaya hazırdır. VideoView nesnesinden readyeasync yöntemini nasıl çağırırım? MediaPlayer için bulduğum örnekler VideoView kullanmıyor ve yüzeyi sıfırdan oluşturuyor gibi görünüyor. Ya da örnekler, videoview.play() öğesinden sonra ortaya çıktığı görünen videoview olay listelerinde dönüş parametresi olarak mediaPlayer kullanır. Ben playeasemc() ve sonra daha sonra the play() çağırmak için bu yüzden playview çağırmadan önce videoview'ın mediaplayer erişmek istiyorum.MediaPlayer.PrepareAsync öğesini VideoView'dan çağırma
6
A
cevap
0
VideoView, MediaPlayer ve SurfaceView etrafında bir sarmalayıcıdır, böylece bunu kendiniz yapmanız gerekmez. SetVideoURI öğesini çağırdığınızda sarıcının hazırladığına inanıyorum. VideoPlayer'ın içinde bulunan üst düzey etkinlik yürütücüsü aracılığıyla VideoView içindeki mediaplayer'ı elde etmek mümkün ve bunu aldıktan sonra, kendinizi ilk kez aramaya hazırlayabilirsiniz diye düşünüyorum, ama içselleri bir araya getirmem ve bu yüzden iyi belgelenemiyorum. beklendiği gibi çalışmayabilir.
1
Belirtildiği gibi, user1023110 belirtildiği gibi, VideoView MediaPlayer'ın etrafındaki sarıcıdır. openVideo (docs kullanışlı hiç olmadığından) bunu içten kendi özel yönteminde prepareAsync() çağrıları doğruladı kaynak koduna Dalış():
private void openVideo() {
if (mUri == null || mSurfaceHolder == null) {
// not ready for playback just yet, will try again later
return;
}
// Tell the music playback service to pause
// TODO: these constants need to be published somewhere in the framework.
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "pause");
mContext.sendBroadcast(i);
// we shouldn't clear the target state, because somebody might have
// called start() previously
release(false);
try {
mMediaPlayer = new MediaPlayer();
if (mAudioSession != 0) {
mMediaPlayer.setAudioSessionId(mAudioSession);
} else {
mAudioSession = mMediaPlayer.getAudioSessionId();
}
mMediaPlayer.setOnPreparedListener(mPreparedListener);
mMediaPlayer.setOnVideoSizeChangedListener(mSizeChangedListener);
mMediaPlayer.setOnCompletionListener(mCompletionListener);
mMediaPlayer.setOnErrorListener(mErrorListener);
mMediaPlayer.setOnInfoListener(mOnInfoListener);
mMediaPlayer.setOnBufferingUpdateListener(mBufferingUpdateListener);
mCurrentBufferPercentage = 0;
mMediaPlayer.setDataSource(mContext, mUri, mHeaders);
mMediaPlayer.setDisplay(mSurfaceHolder);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setScreenOnWhilePlaying(true);
mMediaPlayer.prepareAsync();
// we don't set the target state here either, but preserve the
// target state that was there before.
mCurrentState = STATE_PREPARING;
attachMediaController();
} catch (IOException ex) {
Log.w(TAG, "Unable to open content: " + mUri, ex);
mCurrentState = STATE_ERROR;
mTargetState = STATE_ERROR;
mErrorListener.onError(mMediaPlayer, MediaPlayer.MEDIA_ERROR_UNKNOWN, 0);
return;
} catch (IllegalArgumentException ex) {
Log.w(TAG, "Unable to open content: " + mUri, ex);
mCurrentState = STATE_ERROR;
mTargetState = STATE_ERROR;
mErrorListener.onError(mMediaPlayer, MediaPlayer.MEDIA_ERROR_UNKNOWN, 0);
return;
}
}
İlgili konular
- 1. JPA içinde çağırma yöntemi
- 2. Vertx kullanarak REST API'lerini Çağırma/Çağırma/Tüketme
- 3. XS'de Geri Çağırma geri çağırma oluşturma
- 4. çağırma uygulaması
- 5. Farklı bir denetleyiciye ait kısmi bir görünümü görüntülemek için @ Html.Partial öğesini çağırma
- 6. NodeJS'den PowerShell'i Çağırma
- 7. Python'u PHP'de Çağırma
- 8. Saklı yordamı çağırma VBA
- 9. Özel Geri Çağırma İşleyicisi
- 10. Viewmodel'den çağırma yöntemi
- 11. Angular2'de Servis Çağırma
- 12. ColdFusion'dan bir .jar çağırma
- 13. AssertWasRino alaylarında çağırma
- 14. Python işlevlerini çağırma C++
- 15. Nottan hbm2ddl çağırma
- 16. Saatten işlev çağırma nasıl?
- 17. DWARF bilgilerinden çağrıları çağırma
- 18. Perl'de temel yapıcı çağırma
- 19. WPF bir kontrol çağırma
- 20. Geçersiz bir yöntem çağırma
- 21. Çapraz denetleyici işlevini çağırma
- 22. Bir üye işlevini çağırma
- 23. Aynı Sınıfta Dize Çağırma
- 24. Genel türünde yöntem çağırma?
- 25. Yüzde rasgele işlev çağırma?
- 26. RMI çağırma ile ClassLoader
- 27. clang ++ C++ 11 çağırma
- 28. Dizelerle php yöntemlerini çağırma
- 29. EntityFunctions.TruncateTime() öğesini
- 30. Platform Çağırma, bool, ve dize