java - 媒体播放器 : How to retrieve metadata with MediaMetadataRetriever?

标签 java android

我的 MediaPlayer 正在工作,但我需要检索元数据,例如流标题。我正在使用此代码:

public String getMeta(){
        meta = new MediaMetadataRetriever();
        meta.setDataSource("http://111.1111.1111.1111:1111");
        return meta.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);

但我只从中得到一个空字符串。我还尝试了元的所有常量。我不确定,但我认为问题出在与网站的连接上。我的媒体播放器有一个监听器,例如mPlayer.setOnPreparedListener(new OnPreparedListener() {...}。但是对于 MediaMetadataRetriever 不存在。

有人可以帮助我吗?谢谢!

最佳答案

我对媒体播放器一无所知,但可以使用 Apache Tika 提取有关文件的元数据:

这是我提取文件元数据的代码:

InputStream is = new FileInputStream("/home/rahul/Music/03 - I Like Your Music.mp3");

Parser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler();

Metadata metadata = new Metadata();
parser.parse(is, handler, metadata, new ParseContext());

String handler = handler.toString();
System.out.println("Handler data: " + handler);
System.out.println(metadata.get(Metadata.CREATION_DATE));
System.out.println(metadata.get(Metadata.LAST_MODIFIED));

它将提取元数据,如下所示:

Apache Tika Metadata

关于java - 媒体播放器 : How to retrieve metadata with MediaMetadataRetriever?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18932524/

相关文章:

android - 无法从蓝牙文件设备发现所需的服务

android - Roboguice 2.0 @Inject 单例到 POJO

java - LinkedList 多线程在 Runnable 中创建单独的实例

java - 转义字符串的标准库(没有准备好的语句)

java - eclipse "Widget is disposed"错误

android - 为什么我的 flutter http 网络调用很慢?

android - 始终设置选择的 EditText

java - Android:无法为标题设置 TextView

java - 在 mysql 服务器 Play Framework 中存储日期时间

java - 运行时识别模块