问题标签 [mediametadataretriever]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - MediaMetaDataRetriever.setDataSource 返回 null
我正在尝试开发一个应用程序(Radio Stream)应用程序,我想获取该MediaMetadataRetriever API在收音机上播放的歌曲的详细信息,但是当我设置我的 URL 时出现此错误:
java.lang.IllegalArgumentException at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:71) at maa.myapp.MainActivity$PlayerTask.onPostExecute(MainActivity.java:447) at maa.myapp.MainActivity$PlayerTask.onPostExecute(MainActivity.爪哇:419)
这是我的代码:
android - MediaMetadataRetriever illegal argument
I'm trying to get a frame from a video that the user choose from his gallery. I'm using MediaMetadataRetreiver and from some reason on the "setDataSource" im getting illegal argument.
I'm passing there a string of the location video. I dont know what im doing wrong but it always crash on that line.
Code Example
On that line mediaMetadataRetriever.setDataSource(videoPath); it crash.
What am i doing wrong?
Edit - Log Error
android - 有没有办法从 CipherInputStream 获取视频帧?
在我的 android 应用程序中,我有一个由 加密的视频文件Cipher
,现在我想检索一个视频帧作为缩略图。
MediaMetadataRetriever
可以正常完成这项工作,方法void setDataSource (MediaDataSource dataSource)可能是我问题的关键,但它是在 API 级别 23 中添加的,我也需要在较低的 API 级别上完成这项工作。
我找到了一个名为 的库FFmpegMediaMetadataRetriever
,但它无法通过自定义输入流设置数据源。
那么有人有一个好主意吗?
android - MediaMetadataRetriever FileNotFoundException
我正在构建一个应用程序,您首先可以在其中从手机中选择一个视频,然后该视频在另一个活动中显示两次。也就是说,相同的视频显示在屏幕的左半边和右半边。到目前为止我所做的:在第一个活动中,用户有一个按钮来选择视频:
然后,当它被选中时,将启动第二个活动,将 uri 传递给所选视频:
由于我希望播放视频的方式出现问题。屏幕处于横向时,我希望屏幕左半部分的视频填充屏幕的高度,并在其一半保持纵横比的情况下进行中心裁剪。这是我尝试过的:
首先,我在 OnCreate 中恢复 uri 并获取其容器的尺寸,该容器占据了屏幕的所有左半部分:
而且,如您所见,调用 setDimension 来设置 videoView 的尺寸:
当我调用 getVideoProportion() 必须获取视频的“aspectRatio”(高度/宽度)时,问题就来了:
因为这行retriever.setDataSource(uri.getPath()); 抛出 FileNotFoundException,这很奇怪,因为如果我打电话
视频已播放,所以问题不在于文件不存在。uri.getPath() 具有以下形式:/-1/2/content://media/external/video/media/6685/ORIGINAL/NONE/1567971923
android - 检查视频文件是否有以下元数据的最快方法?
检查视频文件元数据的方法有多种,使用FFmpegMediaMetadataRetriever(慢但可靠)和使用 Native MediaMetadataRetriever(慢且不可靠)。
在 SO 中回答了许多问题,以使用 FFMPEG 或 Native Media api 获取 MetaData,例如Q1、Q2、Q3 ,但它们并没有解决我的问题。
我的问题:
从 android 目录的文件(视频)中获取以下元数据:
- 视频是否有声音/音频?
- 创建日期和时间
- 视频文件的缩略图
如果您有任何建议或代码示例,请告诉我会有很大帮助。
android - RuntimeException:setDataSource 失败:状态 = 0x80000000 使用 MediaMetaDataRetreiver
我正在尝试在 android 上制作一个 gif 应用程序。gif 被制作并保存在 ExternalStoragePublicDirectory 中。现在我正在尝试通过将文件传递给适配器来获取这些文件并使用 MediaMetadataReteiver 在 recyclerview 中显示它。下面是 onBindViewHolder() 中的代码。
它给了我 RuntimeException: setDataSource failed: status = 0x80000000。我尝试使用包含视频文件的不同目录。它起作用了,我得到了要显示的框架。但是当我将它与 gif 一起使用时,它会给我运行时异常。我应该怎么做才能显示 gif。谢谢!
java - 如何使用 MediaMetadataRetriever() 从 .mp3 文件中检索专辑封面
我正在尝试从 MP3 文件中检索专辑封面,但以下代码不起作用。每当应用程序启动时,它都会显示灰色框(在 try/catch 块中检查代码)。
我也尝试使用光标来获取专辑封面,但它不起作用。
java - 如何将 MediaMetadataRetriever SetDataSource 用于外部存储中的文件
我正在尝试从 MP3 文件中提取专辑封面但我无法提供歌曲的正确位置,我可以将其提供给 SetDataSource 方法。我尝试了一切,但仍然给我错误IllegalArgumentException
。
这一切都发生在这条线metaRetriver.setDataSource(MainActivity.this, Uri.parse("/sdcard/song.mp3"));
被执行时
我的代码。
任何人都可以解决这个问题。
java - 如何使用 SetDataSource 从名称中有空格的 MP3 文件中获取专辑封面
每当我运行代码时,它对于名称中没有空格的歌曲都可以正常工作
检查这行代码:metaRetriver.setDataSource("/storage/emulated/0/song.mp3");
这是一个没有空格的 MP3 文件(song.mp3)
但是,每当我更改名称中有空格的歌曲时,它都会抛出IllegalArgumentException
这一行metaRetriver.setDataSource("/storage/emulated/0/Bom Diggy Diggy.mp3");
Ofcource 我不能重命名每个文件以删除其中的空格。
这是我的代码,
谁能帮我解决这个问题
android - 从视频中获取多个缩略图
我正在使用MediaMetadataRetriever
在视频中的特定时间检索缩略图。这就是我实现这一目标的方式:
这会按预期返回位图/缩略图,问题是如果我想在视频中的不同时间获取多个缩略图,如下所示:
然后它仍然只返回相同的缩略图,我不确定是因为只有一个缩略图可用于视频还是什么,但我尝试了不同的视频文件,结果相同。
我尝试更改MediaMetadataRetriever.OPTION_CLOSEST_SYNC
所有可用选项,但结果仍然相同。
我不确定这是否FFMPEG
是更好的选择?