Şu anda kendimi çözebileceğim bir sorunla karşı karşıyayım.Video görüşmem neden oynatılmıyor?
Android uygulamam (4.2 ve 4.4 sürümleri için) bir VideoPlayer işlevi görür. Kısıtlama erişimi olmayan (MODE_WORLD_READABLE) uygulamamın dosya dizinine bazı videolar ekledim ve cihaz ya da uygulamayı kapatıncaya kadar oynatıcıyı tek tek okudum.
Bazen günlük baskısını bu uyarıyı VideoView Video başlamaz bir kullanarak yerel bir videoyu okumaya çalışıyorum ve işim bittiğinde:
03-24 12:10:50.493: W/MediaPlayer(12894): info/warning (701, 0)
Bazen, mediaplayer bu durumu bırakmaz Uygulamamı öldürene kadar (veya cihazı yeniden başlat).
Ve bazen, günlük önceki uyarıdan sonra devam: İlk günlüğüne olarak
03-24 14:07:07.775: E/FFMpegMediaPlayer(100): start in mCurrentState in
03-24 14:07:07.775: I/FFMpegMediaPlayer(100): ******************************************
03-24 14:07:07.775: E/FFMpegMediaPlayer(100): start in mCurrentState = 8
03-24 14:07:07.775: I/FFMpegMediaPlayer(100): starting main player thread:2013-11-20
03-24 14:07:07.775: I/RkAudioPlayer(100): mAudioSink->open in mSampleRate = 48000 channels = 2
03-24 14:07:07.775: I/FFMpegMediaPlayer(100): ******************************************
03-24 14:07:07.775: I/FFMpegMediaPlayer(100): mCurrentState = 8
03-24 14:07:07.775: I/(100): starting thread
03-24 14:07:07.775: D/AUDIO_DECOE(100): prepare()
03-24 14:07:07.785: I/AudioHardwareALSA(100): Audio exiting sandby will open audio device
03-24 14:07:07.895: E/ALSAModule(100): audio type flag: 0
03-24 14:07:13.465: D/FFMpegMediaPlayer(100): url_feof=1,err=0
03-24 14:07:13.465: I/FFMpegMediaPlayer(100): av_read_frame end of stream ret = -541478725
03-24 14:07:13.465: W/MediaPlayer(9652): info/warning (950, 0)
03-24 14:07:13.475: I/MediaPlayer(9652): Info (950,0)
03-24 14:07:13.475: E/ERROR : INFO MEDIAPLAYER(9652): what:950, extra:0
03-24 14:07:17.695: D/AudioHardwareALSA(100): AudioStreamOutALSA::standby().....
, bu olandan sonra appened şey Uygulamamı öldürmek (veya cihazı yeniden başlatın) kadar.
Ayrıca, onPrepared Callback'in tetiklenip tetiklenmediğini öğrenmek için bazı günlük bilgileri ekledim ve bu tamam.
Videoyu tekrar oynatmayı bulmamın tek yolu, sorun oluştuğunda cihazımı yeniden başlatmaktır.
audioManager = (AudioManager) applicationContext.getSystemService(Context.AUDIO_SERVICE); //this is in the constructor of my singleton player
//all the following code are encapsulated in a method which is called every time a new video must be play.
setCompletionListener(); //in here I call videoview.stopPlayback(); and I recall this method to start another video
setErrorListener(); //here too I call videoview.stopPlayback();
videoview.setVideoPath(applicationContext.getFilesDir() + "/" + myVideoFile.getFileName());
videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(final MediaPlayer mediaPlayer) {
audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 90, 0);
mediaPlayer.setVolume(12.0f, 12.0f);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0)
mediaPlayer.start();
}
});
Sorum şu: Neden videoview doğru sürekli oynayan değildir İşte
benim oyuncunun bazı kodudur? Sorun bazen uygulamanın 2 veya 3 saat sonra veya bazen uygulamanızın açılışında görünür.
bu happenieng diğer telefonlarda mı? –
Şimdiye kadar, yalnızca tek bir cihaz türü kullandık çünkü özel bir çözüm için çalışıyoruz ancak şu anda bir tabletle çalışıyoruz. Bazı saatlerde size geri bildirimler vereceğim. İlgi alanlarınız için teşekkürler. – naike
VideoView uygulamasının kendisinde sorun olabileceğini tahmin ediyorum http://www.piterwilson.com/blog/2014/03/11/android-mediaplayer-not-quite-there-yet/ Eğer olsaydım yapardım Bazı daha fazla araştırma sdk değiştirme sürümü en yenisine. Belki bunu zaten google. –