Android体系结构或API中是否有某些东西可以阻止人们创建可读取嵌入式歌词的MP3播放器?

StackOverflow https://stackoverflow.com/questions/4271099

  •  28-09-2019
  •  | 
  •  

当我在iPod Touch上播放某些MP3文件(例如来自 JapanesePod101.com 的课程)时,歌词或MP3文件中嵌入的脚本会显示在媒体播放器中。我相信这些歌词将作为ID3 / ID4标签存储在MP3元数据中。

我发现这是一个非常有用的功能,我相信并不孤单。尽管如此,无论是普通的Android媒体播放器,还是我从市场上下载的任何其他媒体播放器,似乎都不支持此功能。我只是无法找到在Nexus One上获得功能的任何方法。

此功能对我来说非常重要,我正考虑学习Android开发,因此我可以编写一个显示嵌入式歌词或便笺的简单媒体播放器。但是,似乎没有其他人这样做的事实使我感到奇怪-甚至可能吗? Android体系结构或API中是否有某些东西使得很难或不可能从MP3文件中读取和显示歌词信息?我不愿深入学习过程并发现自己瞄准不容易。 (我的意思是,如果所有其他方法都失败了,我会假设我可以编写自己的MP3解码器,但这比我现在愿意经历的麻烦还要多。)

我已经在 Android发烧友Stack Exchange Beta网站,但回想起来,我认为这更多是关于编程的问题,因此最好在这里提问。

有帮助吗?

解决方案

是的,绝对是编程问题。根据我阅读ID3规范的简短经验,我认为解码ID3标签可能是完整的PITA。我确信它可以完成,因为有适用于Android的MP3标签编辑应用程序(无论是否支持歌词,我都不知道)。

ID3v2.3似乎通过标头的SYLT和USLT帧同时支持同步和非同步歌词。我认为这只是一个未被充分利用的功能,因此大多数情况下都不值得付出努力。购买的MP3不会携带此信息(我一直想知道为什么不这样做?),因此必须手动添加(或通过歌词服务API自动添加),但其中涉及很多代码。 如果您要进一步研究,请

此处是ID3v2.3规范。..(放弃希望进入这里的所有人)

其他提示

问题可能是大多数人会使用内置的mp3播放机制,这可能既不支持歌词显示,也很难与其他歌词显示保持同步。

所以可能需要写一些东西来完成自己的mp3解码。

这很可能希望用本机代码完成。另一方面,在android上,音频输出(除非您使用opengl,否则将显示视频)几乎必须通过java完成。因此,您正在做大量工作,以使用本机库解码数据,然后将其分发以从Java中回放和显示。

所以回答您的问题-可能吗?肯定

Android API简化了吗?-不是真的

我刚刚添加了一个新功能请求,该请求将为Android提供支持以读取ID3标签中的USLT。这将使本地和第三方音乐播放器能够显示歌词。如果您想要此功能,请在下面的请求中加注星标,然后发表您的评论。

http://code.google.com/p/android/issues / detail?id= 32547

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top