问题标签 [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.

0 投票
2 回答
360 浏览

android - 将本地视频传递给 mediametadataretriever 抛出 IllegalArgumentException

在我的 android 应用程序中,我想提取视频帧。我正在使用 MediaMetaDataRetriever。

我如何设置数据源

这是日志输出

如何将存储在 android 数据文件夹中的视频加载到 mediametadataretriever 中?

0 投票
2 回答
670 浏览

java - MediaMetadataRetriever:尝试使用 url 从 mp3 检索专辑封面时应用程序崩溃

我想在这里完成的是当我调用这个方法时:

我的应用程序崩溃,引发错误

java.lang.IllegalArgumentException

这是相册Art ImageView

fullsongpath一个 ArrayList 持有这个对象:

路径是 mp3 文件的 URL

我真的不知道是什么导致了这个问题,希望您能提供帮助,将不胜感激。

0 投票
0 回答
1008 浏览

android - 如何从视频 URL 获取视频缩略图作为 GIF?

我想将视频缩略图显示为来自TikTok 等视频 URL 的 GIF - 包括 music.ly应用程序。

请参阅下面的视频以获取更多详细信息

我用它来获取前 10-15 个视频帧来生成 GIF。但它不起作用。

0 投票
2 回答
824 浏览

android - 获取 mp3 文件的单个图像太慢

我正在尝试在手机上获取 mp3 文件的图像。我已经挣扎了几天,现在我知道了;

  • 首先,我使用带有此代码的内容提供程序

    我像这样创建我的光标;

    Cursor cursor = ctx.getContentResolver().query(allSongsUri, projection, null, null, sortOrder);

那里有我所有的 mp3 文件。没关系。现在我想得到他们的封面图片。

  • 如果我像这样使用 MediaMetadataRetriver 的 getEmbeddedPicture 方法

    将近 40-50 个文件大约需要 6-7 秒。因为 getEmbeddedPicture() 太慢了!

  • 还尝试获取album_id 并将另一个光标查询到MediaStore.Audio.Albums,我看到所有专辑ID 都是相同的,因为它们都是同一个文件夹。我不想显示他们的专辑图片。我想显示文件的封面图片。我在这里尝试过但是在那里,我们正在获取文件的专辑图像。那不是我问的。

在哪里可以找到文件的图像路径?MetadataRetriever 类在哪里可以使用 getEmbeddedPicture 获取它?嵌入的图片在哪里?

谢谢。此致

0 投票
1 回答
114 浏览

android - MediaMetadataRetriever 给出 RunTimeException

在我的 public void onActivityResult(int requestCode, int resultCode, Intent data) {......有这样的一部分:

在这里,我试图获取视频持续时间MediaMetadataRetriever并将其存储在 中timeInMillisec,接下来我将检查timeInMillisec任何错误的值:

关键是,这里我有这个例外:

我无法弄清楚这里出了什么问题。任何帮助将不胜感激。

0 投票
0 回答
311 浏览

android - 使用 .setDataSource 从当前正在播放的音乐应用中获取 mediaMetadata

我想从任何应用程序(spotify、google play、soundcloud、YouTube、blackplayer 等)的当前播放的 android 音频源中获取 MediaMetadata(歌曲标题/艺术家),并尝试使用 MediaMetadataRetriever.setDatSource

目前我在“MainActivity.java”中有一个函数“getActiveNotifications”,每当按下按钮时都会调用它,我的代码如下所示:

我可以将 .setDatSource 通常用于任何音乐应用程序还是仅适用于文件?

我可以在 Logcat 中看到 updateMediaMetaData 打印当前播放歌曲的媒体元数据,适用于音乐流媒体和文件播放应用程序(见图)

在此处输入图像描述

我在正确的轨道上吗?有没有办法可以在流/文件播放器应用程序上使用 .getDataSource 来处理当前正在播放的音频源?

非常感谢任何帮助,谢谢

0 投票
0 回答
41 浏览

java - 在android手机上解析logcat输出

我希望我的应用程序获取当前播放音频的 MediaMetaData(歌曲标题/艺术家/专辑)。我可以在我的计算机上的 updateMediaMetadata 下看到此信息打印到 logcat,因此我试图以某种方式提取该信息。

在此处输入图像描述

编辑: 所以当我可以进行/检测 MediaMetadata 调用时,logcat 绝对不是这样做的方法。我正在尝试创建一个新类,当我调用一个函数时打印出当前正在播放的 MediaMetadata 的标题,但我的代码没有编译,我想知道它是否与我如何设置我的类有关?根据我对文档的理解:

https://developer.android.com/reference/android/media/MediaMetadata

我正在尝试扩展该类以利用其功能,如下所示:

我的 MainActivity 像这样调用这个函数:

当我尝试构建我的项目时,它给出了错误,说我不能从最终的 MediaMetadata 继承等等:

在此处输入图像描述

我缺少什么需要正确声明 MediaMetadata 并检索标题字符串?

0 投票
0 回答
138 浏览

android - 从高质量的视频中正确获取帧作为位图

我试图从视频中获取最后一帧作为高质量的位图。我现在使用方法 getFrameAtTime 的 MediaMetadataRetriever,但图片质量很差 - 请参阅此处的类似帖子。

我在这里尝试使用这种方法:

https://bigflake.com/mediacodec/#ExtractMpegFramesTest但我无法让它工作,框架都是水平线

此外,另一个非常有趣的库:https ://github.com/wseemann/FFmpegMediaMetadataRetriever 这个库可以从帧中获得质量非常好的图像,但它只有秒精度(例如,如果我尝试获取最后一帧或 2300 毫秒的帧,它只显示损坏的图像)

还有其他选择吗?

0 投票
0 回答
389 浏览

android - MP4 视频最后一帧

我正在尝试使用 MediaMetadataRetriever 获取 mp4 视频的最后一帧,但它总是返回短视频的第一帧(如 3 秒长的视频),它适用于长视频。FFmpegMediaMetadataRetriever 也给出相同的结果。

任何建议,将不胜感激。

0 投票
1 回答
333 浏览

android - 来自外部存储的FFmpegMediaMetadataRetriever?安卓工作室/科特林

因此,我正在制作我的第一个 Android 应用程序,并试图让它允许用户在下一个活动中查看视频和视频的当前详细信息之前从他们的画廊中选择一个视频。我的问题是,当我使用 FFmpegMediaMetadataRetriever 并将视频的文件路径传递给它时,我收到错误消息java.lang.IllegalArgumentException: setDataSource failed: status = 0xFFFFFFFF。我通过小道消息听说这意味着我的文件路径无效。当我找到文件Log.d路径时,我得到了content://media/external/file/3565,这对我来说看起来像是一个正确的文件路径!我希望有人能帮我解决这个问题。

这是我的上下文活动类:

我也很高兴听到对我的代码的任何建设性反馈!请,谢谢你,祝你有美好的一天!