Android - 保存视频内部存储和播放

时间:2017-02-16 09:52:01

标签: android

我已将示例mp4视频保存在文件中的android内部存储中,但是当尝试通过将文件路径解析为uri时从android videoview中读取并播放时,我无法播放此视频错误。我检查了很多链接但没有用,我该如何实现呢?

            SELECT cast(link_option_id,varchar) 
            FROM product_link 
            WHERE link_member_id = '146'

1 个答案:

答案 0 :(得分:0)

简单地说,你不能。 VideoView内部使用MediaPlayer,明确requires a file to be world-readable(app的目的不是)。正如文档所述,绕过此限制的唯一方法是传递文件描述符而不是文件路径。

不幸的是VideoView没有类似setDataSource(FileDescriptor)的方法,所以你有两种方法:

  1. 访问VideoView的{​​{1}} through reflection并致电setDataSource(FileDescriptor)。不确定这是否是一个可行的解决方案,因为内部媒体播放器在你调用MediaPlayer时被实例化,但你不应该调用它...简而言之,评估它,但它可能是一个死路。
  2. 使用播放视频的VideoView.setVideoPathset a surface holder直接将MediaPlayer传递给FileDescriptor(即使第二种解决方案更清晰)。