在Android应用程序开发中预加载或预缓冲.mp4video

我正在构build一个应用程序,成功地显示一个MP4video文件onButtonClick。 我想预缓冲或预加载video的URI(远程URL),以便它不会延迟点击button后播放video。 我希望它能够马上点击并播放,因此,在应用程序启动启动屏幕上进行预加载或缓冲似乎是一个合适的解决scheme。 唯一的是我不知道如何。 我有大量的Android图书,但几乎没有任何缓冲,或者只覆盖audio。

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

谢谢。

  • 同时顺利地播放video
  • 将video插入MediaStore
  • ANDROID:如何将video文件下载到SD卡?
  • 如何在转换为横向模式android时继续播放video
  • VideoView匹配父高度并保持宽高比
  • 在Android WebView中播放Youtube HTML5嵌入式video
  • 无法播放video
  • Android TextureView与VideoView性能
  • 谷歌发布的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准备video,如下所示:

     mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setOnPreparedListener(<implementation of MediaPlayer.OnPreparedListener>); mediaPlayer.setDataSource(dataSource); mediaPlayer.prepareAsync(); 

    prepareAsync() ,mediaplayer会缓冲你的video。 MediaPlayer.OnPreparedListener.onPrepared()会告诉你媒体播放器是否准备好播放。

    只需检查准备好的标志,并调用mediaplayer.start()当你点击你的button“onButtonClick”

    原生的Android浏览器不缓冲媒体文件(audio或video),所以没有办法在HTML5上做到这一点。 正如@ bradenV2所说,你可以将文件复制到内存中(如果它是一个应用程序,可以使用Phonegap)。