- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 Android MediaMetadataRetriever
获取 mp4 格式的录制视频的长度 - 但出现异常:
07-13 13:54:32.686: E/AndroidRuntime(19790): FATAL EXCEPTION: main
07-13 13:54:32.686: E/AndroidRuntime(19790): java.lang.RuntimeException: setDataSource failed: status = 0x80000000
我的代码是:
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(video.getMediaUrl());
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
long timeInmillisec = Long.parseLong(time);
video.getMediaUrl()
路径与此类似:
file:///storage/emulated/0/Foldername/Videos/VID_20130713_135318.mp4
我不知道我做错了什么 - 请任何人帮助我!此代码也适用于音频文件,但不适用于视频。
最佳答案
public static String getFileDuration(Context context, File file) {
String result = null;
MediaMetadataRetriever retriever = null;
FileInputStream inputStream = null;
try {
retriever = new MediaMetadataRetriever();
inputStream = new FileInputStream(file.getAbsolutePath());
retriever.setDataSource(inputStream.getFD());
long time = Long.parseLong(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION));
result = String.format(context.getResources().getString(R.string.player_time_format),
AppUtil.getPlayerMinutes(time), AppUtil.getPlayerSoconds(time));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (RuntimeException e) {
e.printStackTrace();
} finally{
if (retriever != null){
retriever.release()
}if (inputStream != null){
inputStream.close()
}
}
return result;
}
关于Android MediaMetadataRetriever setDataSource 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17629995/
我尝试使用 Surface View 创建媒体播放器。当我尝试为媒体播放器设置数据源时,出现了 setDataSource 失败异常。如何解决? 代码: @Override public void s
JSTL <sql:setDataSource> 标签用来在 JSP 页面中配置数据源,并将其存储在某作用域的变量中。 语法 JSP <sql:setDataSource>
我已经设法用音频文件填充我的 ListView,但是当单击 ListView 中的项目时没有任何反应,我收到异常“setDataSource failed”。 public class songsFr
我对 MediaMetadataRetriever setdatasource 方法有疑问。我创建了一个简单的项目。 main.xml 只有一个 TextView ,它应该显示 music.mp3 的
我在使用 MediaMetadataRetriever 检索 mp3 文件的艺术家和标题时收到错误(setDataSource 失败 0x8000000),但我不明白为什么。在我的模拟器上运行时,它运
我正在尝试使用 Android MediaMetadataRetriever 获取 mp4 格式的录制视频的长度 - 但出现异常: 07-13 13:54:32.686: E/AndroidRunti
阅读“Media Playback”和“MediaPlayer”android 文档后,我仍然感到困惑,需要有关 setDataSource 的有经验的建议重载方法。 我在项目的 Service 组件
假设我有一个文件的完整路径。将该文件加载到 MediaPlayer 中的更好方法是什么? String filePath = "somepath/somefile.mp3"; mediaPlayer.
我有一个 UIViewController其中包含此属性: @property (weak, nonatomic) IBOutlet UITableView *customerTableView; 在
我是 android 编程的初学者,我想编写 mp3 应用程序以从 URL 调用一些 mp3 文件,所以当我在 android 开发人员中显示“媒体播放器”时,我将 URL 放在 setDataSou
我正在开发一个使用 mediaMetadataRetriever.setDataSource 抓取视频帧的应用程序。但是,当我设置视频路径时,它给了我一个非法参数异常并崩溃。我是 java 和 And
我正在尝试使用 MediaExtract 提取 avi 文件的轨道 0(视频轨道)并使用 MediaCodec 编码为 h264 格式。这是我配置 mediaCodec 的方式 public Medi
我收到以下错误 java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA 我想知道这个状态是什么。我正在使用函数 Me
我正在尝试使用此类获取远程视频的大小,如果视频是远程的,我将收到 IllegalArgumentException。 视频是存储在一台服务器上的mp4... 如果我用 mediaplayer 播放视频
我正在尝试使用 NSarray 使用 NSTableView 创建一个简单的菜单。当我将数据源设置为我创建的类时,出现 EXC_BAD_ACCESS 错误。奇怪的是,它在 macruby 中有效吗?实
我在 VS 2010 sap crystalreports 中遇到问题,使用 c# 制作 Windows 应用程序。 我在使用以下代码时遇到以下错误: CrystalReport1 cr1 = ne
这段代码曾经有效。然后,也许我在某个地方改变了一些东西(或者如果我对 Android 的了解是正确的,则更新在媒体播放器中引入了一个错误)。它停止在 一些 设备上运行!尤其是我的 Nexus S (2
如果使用静态方法MediaPlayer.create(context,id),我可以播放本地mp3,但如果使用非静态方法MediaPlayer.setDataSource(String),则无法正常播
我是 Android 开发新手。我正在尝试根据位置选择歌曲时播放歌曲。它总是崩溃并且有多个错误。我真的不明白我做错了什么。可能是愚蠢的错误,请帮助。 public class BackgroundAu
这个问题很奇怪。问题是,每当我尝试使用时间戳字符串命名文件时,setDataSource 方法都会失败并给出 IOException,但如果我给出诸如包含字母表(例如“Hello.m4a”)的名称,则
我是一名优秀的程序员,十分优秀!