2016-03-24 11 views
7

Ş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.

+0

bu happenieng diğer telefonlarda mı? –

+0

Ş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

+0

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. –

cevap

1

Kod 701 mediaplayer fazla veri tampon ve geçici olarak oynatmayı duraklatma, bu normaldir demektir

public static final MEDIA_INFO_BUFFERING_START

MediaPlayer geçici tampon amacıyla dahili olarak oynatmayı duraklatma int daha fazla veri. What does MediaPlayer info/warning (973, 0) mean?

hata olabilir:

Constant Value: 701 (0x000002bd)

ana sorun, hata kodları 9xx dalı altında 950

info/warning (950, 0) 
I/MediaPlayer(9652): Info (950,0) 
E/ERROR : INFO MEDIAPLAYER(9652): what:950, extra:0 

hata kodu 950 Falls burada tarif edildiği gibi bir hata kodu dev yerine, oynamaya çalıştığınız dosya ile buz ya da kodun. Bu SO question'da daha fazla bilgi var.Ayrıca, hata düzeltmek için uygun bir belge ve somut adımlar gibi görünmediğinden, this one gibi bir hata olarak bildirmeye çalışın.

İlgili konular