莫道桑榆晚,为霞尚满天。这篇文章主要讲述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应用开发中的Pre-Load或Pre-Buffer .mp4视频】原生Android浏览器不会缓冲媒体文件(音频或视频),因此无法在html5上执行此操作。正如@ bradenV2所说,您可以将文件复制到内存中(如果是应用程序,可以使用Phonegap)。
推荐阅读
- 为什么从Android应用程序下载的视频没有显示在图库中()
- 管理员(单个PHP文件中的在线数据库管理器)
- Electronegativity(一种识别Electron框架应用程序中的错误配置和安全性反模式的工具)
- WWW SQL Designer(在线SQL图表工具)
- 在Electron框架中创建你的应用或屏幕的屏幕截图
- Reko(通用二进制反编译器)
- 在Electron Framework中使用本机桌面通知
- 如何使用Electron Framework从Web视图发送检索信息和操作DOM
- 如何使用Electron Framework执行exe文件(系统应用程序)