在MediaPlayer中存储/缓冲文件以便快速访问-File vs FileInputStream vs FileDescriptor

时间:2019-02-08 14:14:13

标签: java performance file

基本上,我需要快速,无缝地在android mediaplayer中的视频之间切换。为此,我想尽快存储/缓冲视频。

此刻,我保存了一个ArrayList。为了将该文件传递给MediaPlayer,我使用FileInputStream.getFD()获取FileDescriptor。

我从各个类的javadoc中获得了以下语句:

  • 文件:“文件和目录路径名的抽象表示。”
  • FileInputStream:“从文件系统中的文件获取输入字节”
  • FileDescriptor:“文件描述符类的实例充当表示打开文件的基础机器特定结构的不透明句柄”

就性能而言,我真的不知道什么班级会在这里有所作为。

当我在视频之间切换时,会有短暂的延迟。可以理解但是我希望将这种延迟降到最低。

这是我代码的要旨:

mVideoStreams = SomeClass.getMyVideos();
mMediaPlayer = new MediaPlayer();

public void changeVideo(int number)
{
    mMediaPlayer.reset();

    try {
        mMediaPlayer.setDataSource(mVideoStreams.get(number).getFD());
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        mMediaPlayer.prepare();
    } catch (IOException e) {
        e.printStackTrace();
    }
    mMediaPlayer.start();
}

是否存在“最快”的方式来传递这些视频,甚至“缓冲”它们,以便它们存储在内存中并可以快速恢复?

0 个答案:

没有答案