Android应用开发中的Pre-Load或Pre-Buffer .mp4视频

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android应用开发中的Pre-Load或Pre-Buffer .mp4视频相关的知识,希望对你有一定的参考价值。

我正在构建一个成功在onButtonClick上显示MP4视频文件的应用程序。我想预先缓冲或预加载视频的URI(远程网址),以便在点击按钮后不会延迟播放视频。我想让它立即点击播放,因此在应用启动启动画面上预加载或缓冲似乎是一个合适的解决方案。唯一的问题是我不知道如何。我有很多android书籍,但几乎没有任何书籍可以覆盖缓冲,或者它们只涵盖音频。

任何人都可以让我知道如何缓冲以前活动的视频?

谢谢。

答案

谷歌发布了ExoPlayer,为媒体播放提供了更高水平:http://developer.android.com/guide/topics/media/exoplayer.html

它支持不同的状态,如后台缓冲:

// 1. Instantiate the player.
player = ExoPlayer.Factory.newInstance(RENDERER_COUNT);
// 2. Construct renderers.
MediaCodecVideoTrackRenderer videoRenderer = …
MediaCodecAudioTrackRenderer audioRenderer = ...
// 3. Inject the renderers through prepare.
player.prepare(videoRenderer, audioRenderer);

我在自己的项目中使用它,看起来很有效率。谷歌还制作了一个完整的演示版本:https://github.com/google/ExoPlayer/tree/master/demo/src/main/java/com/google/android/exoplayer/demo/full比简单演示更强大。

另一答案

您可以使用MediaPlayer准备视频,如下所示:

mediaPlayer = new MediaPlayer();
mediaPlayer.setAudiostreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setOnPreparedListener(<implementation of MediaPlayer.OnPreparedListener>);

mediaPlayer.setDataSource(dataSource);
mediaPlayer.prepareAsync();

在调用prepareAsync()之后,媒体播放器将缓冲您的视频。 MediaPlayer.OnPreparedListener.onPrepared()将告诉您媒体播放器是否已准备好播放。

只需检查准备好的标志,并在单击“onButtonClick”按钮时调用mediaplayer.start()

另一答案

原生Android浏览器不会缓冲媒体文件(音频或视频),因此无法在html5上执行此操作。正如@ bradenV2所说,您可以将文件复制到内存中(如果是应用程序,可以使用Phonegap)。

以上是关于Android应用开发中的Pre-Load或Pre-Buffer .mp4视频的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 的视频闪屏期间预加载 WebView

Firefox Android 中带有“white-space:pre-wrap”的“input”高度大于 Android 中的 Chrome

Android 材料设计按钮 - Pre lollipop

<pre> 标签在 Android 版 Zoho Mail 应用程序上被忽略

在Pre-Lollipop设备中使用.xml向量时,应用程序崩溃Xamarin.Android

用于 Pre-Lollipop 设备的具有弯曲背景的 Android Ripple 按钮