安卓 : Play a video from a private application file

标签 android file video private internal

我正在使用 videoView 显示我从服务器下载的视频。

如果我从 SD 卡播放视频,它可以正常使用类似的东西:

video.setVideoPath(Environment.getExternalStorageDirectory().getAbsolutePath() + "/test.mp4");

但就我而言,我不希望视频从 SD 卡播放,而是从应用程序的内部存储播放。在这种情况下,我找不到正确的路径...... 我以为是这样的:

video.setVideoPath("test.mp4");

video.setVideoPath("file://test.mp4");

video.setVideoPath("data/data/com.myapp/file/test.mp4");

但它不起作用,视频 View 在尝试播放视频时发送错误。

只要精确一点,文件本身就可以很好地下载(两种方式),因为我使用 SD 卡和文件系统进行了检查(它的大小没问题)。这似乎是给定的路径错误。

有什么想法吗?

谢谢

最佳答案

如果要播放应用程序内部存储中的视频,请使用以下代码行:

MediaPlayer mMediaPlayer = new MediaPlayer();
File file = new File("data/data/com.myapp/file/test.mp4");
        FileInputStream fis = new FileInputStream(file);
        FileDescriptor fd = fis.getFD();
        mMediaPlayer.setDataSource(fd);

这一定会对你有所帮助。

关于安卓 : Play a video from a private application file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7746973/

相关文章:

android - 在哪里保存 Android 应用程序的可编辑配置文件?

android - libstreaming - 如何旋转流媒体视频?

Python:每个类一个模块(文件.py)?

android - FCM Firebase 推送通知 Android/iOS

java - LibGDX:如何在主游戏屏幕上重复显示/隐藏覆盖弹出菜单

python - 从文件开头删除字节数

java - 删除行后无法将 temp.txt 重命名为original.txt

php - 提取闪烁视频缩略图

android - 使用 MediaCodec 进行转码会产生绿色且困惑的视频

html - 背景视频,始终缩放到高度,如果需要裁剪宽度