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