如何从 SD 卡播放视频

Posted

技术标签:

【中文标题】如何从 SD 卡播放视频【英文标题】:How to play videos from SD Card 【发布时间】:2012-06-03 11:14:33 【问题描述】:

我正在创建一个简单的应用程序,它可以从网络上流式传输视频,但现在我想更改代码以便可以播放我的 SDCard 中的视频文件

原代码:

Uri vidFile = Uri.parse("MY SITE HERE");
VideoView videoView = (VideoView) findViewById(R.id.VideoView);
videoView.setVideoURI(vidFile);
videoView.setMediaController(new MediaController(this));
videoView.start();

所以请帮助我更改代码,以便它可以播放我的移动存储卡中的视频。

【问题讨论】:

【参考方案1】:

videoView.setVideoURI(vidFile); 方法需要替换为videoView.setVideoPath(path); 方法。 这里path指定视频文件在SDCARD上的路径。

可以使用该视频文件的MediaStore.Video.Media.DATA 属性轻松检索此路径,或者只需将歌曲路径静态输入为/sdcard/songname

【讨论】:

嘿 Uri vidFile = Uri.parse("MY SITE HERE");如果我错了,请纠正我,但不需要这个,所以我应该删除它? 顺便说一句,它只会播放 .3gp 文件还是取决于我的手机支持的格式?【参考方案2】:
Uri vidFile = Uri.parse(
   Environment.getExternalStorageDirectory().getAbsolutePath()+"filename");
... 

其余代码将相同。

【讨论】:

它有一个特定视频文件的文件名,如果我想从列表中选择,如何播放选定的视频文件? 上面的示例代码假定文件位于根级别。您可以将/path/filename.mp4附加到getabsolutePath()返回的路径【参考方案3】:

代替

videoView.setVideoUri(vidFile)

使用

videoView.setVideoPath("/sdcard/SONG.").

告诉我。

【讨论】:

【参考方案4】:

这些链接可能会对您有所帮助:

Playing 3gp video in SD card of android

how-play-video-and-audio-android

Using VideoView to play mp4 from sdcard

【讨论】:

【参考方案5】:

我也尝试了您的代码并收到相同的错误消息,但是当我尝试使用路径或名称中没有空格的视频路径时,它运行良好。试一试。 例如, 文件路径“/mnt/sdcard/Movies/Long Drive Song - Khiladi 786 ft. Akshay Kumar_Asin-YouTube.mp4” 给出了错误,但文件路径“/mnt/sdcard/Movies/Khiladi.mp4”运行良好。

【讨论】:

【参考方案6】:

我知道它很旧,但如果它可以提供帮助。将此添加到您的清单中

<uses-permission android:name="com.android.externalstorage.ExternalStorageProvider"/>

【讨论】:

以上是关于如何从 SD 卡播放视频的主要内容,如果未能解决你的问题,请参考以下文章

Android 2.2:从 SD 卡播放视频时出现问题

从 sd 卡创建播放列表并将其发送到 Chromecast

和家亲摄像头sd卡内视频通过电脑播放读取方式

和家亲摄像头sd卡内视频通过电脑播放读取方式

和家亲摄像头sd卡内视频通过电脑播放读取方式

利用videoView创建播放器,实现展示视频列表和搜索sd卡功能 以及android6.0的动态授权等功能