我创建了一个应用,我使用Android mediaplayer
来从HTTP源流式传输多个视频文件。我使用Prepare()
方法而不是prepareAsync()
,因为除非显示某些内容,否则我无法继续。
这里我有一个返回每个mediaplayer
实例的简单方法:
MediaPlayer mediaPreparation(String filename) {
String url = "myURL"; // your URL here
// create mediaplayer instance
MediaPlayer mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(url);
mediaPlayer.prepare();
} catch (IOException e) {
}
mediaPlayer.setLooping(true);
// mediaPlayer.start();
return mediaPlayer;
}
然后我使用start()
逐个启动它们。现在我有两个问题:
1- Prepare()
如何真正起作用?我的应用程序需要一段时间才能启动。它不应该首先收到视频流的部分(不下载整个),然后开始播放?!
2-我可以手动缓冲视频,这样我可以更好地控制缓冲区,并将其输入媒体播放器进行播放吗?具体而言,给定条件我需要从特定时间开始视频。所以我可能需要在视频的特定时间缓冲视频流。