2012-04-15 8 views
2

Wenn ich ein Video mit prepareAsync(), dann Start(), wenn das Video vorbereitet ist, dauert es etwa 250ms von meinem Start() Aufruf, wenn das Video tatsächlich beginnt zu spielen. Ist das so, oder ist hier etwas Lustiges? Beachten Sie, dass sich das Video im unformatierten Verzeichnis befindet. In meiner Tätigkeit des OnCreate ich habe:Android MediaPlayer: vorbereitete Video dauert 250ms zum Abspielen

private VideoView vv; 
private MediaPlayer mp = new MediaPlayer(); 
vv = (VideoView)findViewById(R.id.vv); 
vv.getHolder().addCallback(this); 
mp.reset(); 
mp.setDisplay(vv.getHolder()); 
mp.setDataSource(this, Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.moviename)); 
Log.d(TAG,"video is preparing"); 
mp.prepareAsync(); 

Dann gibt es den Hörer:

@Override 
public void onPrepared(MediaPlayer arg0) { 
    Log.d(TAG, "video is prepared"); 
    mp.start(); 
} 

Eigentlich ist mein Code komplizierter als diese. Der Nutzer klickt auf eine Schaltfläche, um das Video abzuspielen, und kann auch verschiedene Videos auswählen. Ich habe ein Bild, das das Video versteckt, und bei einer bestimmten Anzahl von ms von mp.start() ziehe ich dieses Bild weg und enthülle das Video. Auf meinem Gerät muss ich dies auf 250ms einstellen, um zuverlässig etwas anderes als das Video zu enthüllen (das etwas ist entweder schwarz oder das letzte Bild des vorherigen Videos).

Ich frage mich, ob Sie von meinem Logcat feststellen können, dass etwas nicht stimmt. Ich bin neugierig auf die Nachrichten, die ButtonBookActivity nicht heißen. Sind sie normal? Dies sind mp4s. Beachten Sie, dass die Vorbereitung des Videos in diesem Fall nur 120 ms dauert.

04-15 13:30:05.600: D/ButtonBookActivity(1238): video is reset 
04-15 13:30:05.620: I/NuCachedSource2(83): ERROR_END_OF_STREAM 
04-15 13:30:05.630: D/AwesomePlayer(83): Failed to open file, all profile flags have to set through setprop method. 
04-15 13:30:05.630: I/MPEG4Extractor(83): NON-QT MODE DECIDED 
04-15 13:30:05.640: I/SampleTable(83): There are reordered frames present. 
04-15 13:30:05.640: D/ButtonBookActivity(1238): video is preparing 
04-15 13:30:05.640: I/OMXCodec(83): [OMX.Nvidia.h264.decode] AVC profile = 77 (Main), level = 32 
04-15 13:30:05.640: I/OMXCodec(83): [OMX.Nvidia.h264.decode] video dimensions are 800 x 1280 
04-15 13:30:05.640: I/OMXCodec(83): [OMX.Nvidia.h264.decode] Crop rect is 800 x 1280 @ (0, 0) 
04-15 13:30:05.760: D/ButtonBookActivity(1238): video is prepared 
04-15 13:30:06.540: D/ButtonBookActivity(1238): touch event 
04-15 13:30:06.540: D/ButtonBookActivity(1238): button clicked 
04-15 13:30:06.550: D/ButtonBookActivity(1238): calling playmovie in onTouch callback 
04-15 13:30:06.550: D/ButtonBookActivity(1238): playing movie 
04-15 13:30:06.550: D/ButtonBookActivity(1238): delaying movie reveal 
04-15 13:30:06.560: D/NvOsDebugPrintf(83): Allocating new output: 800x1280 (x 12) 
04-15 13:30:06.570: I/OMXCodec(83): [OMX.Nvidia.h264.decode] video dimensions are 800 x 1280 
04-15 13:30:06.570: I/OMXCodec(83): [OMX.Nvidia.h264.decode] Crop rect is 800 x 1280 @ (0, 0) 
04-15 13:30:06.620: D/ButtonBookActivity(1238): touch event 
04-15 13:30:06.620: D/ButtonBookActivity(1238): ignoring touch event 
04-15 13:30:06.770: V/NvAudioALSA(83): open called for devices 00000002 in mode 0... 
04-15 13:30:06.770: V/NvAudioALSA(83): getAlsaDeviceName::devices 0x2 IsVoiceCallDevice 0 devName music 
04-15 13:30:06.770: V/NvAudioALSA(83): Reset buffer size to 4096 and latency to 92879 
04-15 13:30:06.770: V/NvAudioALSA(83): Set PLAYBACK PCM format to S16_LE (Signed 16 bit Little Endian) 
04-15 13:30:06.770: V/NvAudioALSA(83): Using 2 channels for PLAYBACK. 
04-15 13:30:06.770: V/NvAudioALSA(83): Set PLAYBACK sample rate to 44100 HZ 
04-15 13:30:06.770: V/NvAudioALSA(83): Buffer size: 4096 
04-15 13:30:06.770: V/NvAudioALSA(83): Period size: 1024 
04-15 13:30:06.770: V/NvAudioALSA(83): Latency: 92879 
04-15 13:30:06.770: V/NvAudioALSA(83): Period Time: 23219 
04-15 13:30:06.770: V/NvAudioALSA(83): Periods: 4 
04-15 13:30:07.060: V/NvAudioALSA(83): Initialized ALSA PLAYBACK device music 
04-15 13:30:09.550: D/ButtonBookActivity(1238): video completed 
+1

Ich habe keine Antwort für Sie, aber ich bin auch an der Antwort interessiert, die Ihnen vielleicht einfällt. Ich bekomme ähnliche Nachrichten, die versuchen, ein lokales mp4 in einem WebView

Antwort

1

This könnte auf das Android Audio-Latenz Problem in Zusammenhang steht. Der Aufruf von start() für eine Audiodatei benötigt etwas Zeit, bevor tatsächlich Ton aus den Lautsprechern kommt. Vielleicht gilt das auch für Videos und der Mediaplayer benötigt etwas Zeit, bevor er irgendwelche Videoframes zeigt.

Also wahrscheinlich gibt es nichts, was Sie tun können.

Verwandte Themen