读取远程 mp3 文件的 ID3 标签?

发布于 2024-08-28 09:43:41 字数 186 浏览 10 评论 0原文

使用 Silverlight 读取 MP3 标签 让我开始读取 id3 标签,但我意识到 taglib # 在线处理本地文件路径?

有没有办法从远程文件读取此信息?

Read MP3 Tags with Silverlight got me started with reading id3 tags, but i realize that taglib# online deals with local file paths ?

Is there a way of reading this info from a remote file ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何以畏孤独 2024-09-04 09:43:42

我最近为 Ruby 回答了同样的问题(见下文)——我很确定你可以做类似的事情。

这个想法是:

  1. 使用 HTTP 1.1 协议或更高版本,以及范围 HTTP 请求。

  2. 下载 ID3v2-tag 的开始部分(100 字节)

  3. 从下载的前几个字节中,您可以确定 ID3v2-tag 的正确长度完整的 ID3v2 标签,例如 N

  4. 下载文件的前 N ​​个字节(例如完整的 ID3v2-tag )

  5. 根据您的目的解析 ID3v2 标签

请参阅:

在 Ruby/Rails 中读取远程 MP3 文件的 ID3 标签?

I recently answered the same question for Ruby (see below) - I'm pretty sure you can do something similar.

The idea is:

  1. use HTTP 1.1 protocol or higher, and a Range HTTP-request.

  2. download the beginning section (100 bytes) of the ID3v2-tag

  3. from the first few bytes downloaded, you can determine the correct length of the complete ID3v2 tag, e.g. N

  4. download the first N bytes of the file (e.g. the complete ID3v2-tag)

  5. parse the ID3v2 tag for your purposes

See:

Read ID3 Tags of Remote MP3 File in Ruby/Rails?

白芷 2024-09-04 09:43:42

Tim Heuer 有一篇很好的博客文章介绍了这一点。 http:// timheuer.com/blog/archive/2010/01/30/reading-mp3-id3-tags-with-silverlight-taglib.aspx

和你一样,他也遇到了 TabLib# 仅使用本地路径的问题。

TagLib# 没有的一件事是流输入实现。事实上,大多数库都采用本地文件路径。幸运的是,该库是使用通用“文件”接口编写的,因此我只需创建自己的 StreamFileAbstraction。我选择在我的项目中而不是在基础库中执行此操作。这很容易,因为 LocalFileAbstraction 实际上在文件上执行了 Open 作为它的第一个任务,并设置了一些公共变量。我的抽象基本上只是已经传递了流并准备好了。

Novell 网站上有一个使用文件抽象的示例。
http://developer.novell.com/wiki/index.php/TagLib_Sharp:_Examples

Tim Heuer has a good blog post on doing this. http://timheuer.com/blog/archive/2010/01/30/reading-mp3-id3-tags-with-silverlight-taglib.aspx

Like yourself, he also ran into the problem of TabLib# only using local paths.

One thing that TagLib# didn’t have was a stream input implementation. Most of the libraries, in fact, assumed a local file path. Luckily the library was written using a generic ‘File’ interface, so I just had to create my own StreamFileAbstraction. I chose to do this within my project rather than the base library. It was easy since the LocalFileAbstraction actually perfomed an Open on the file as it’s first task and set some public variables. My abstraction basically just hands the stream already and ready to go.

There is an example on the novell site that uses file abstraction.
http:// developer.novell.com/wiki/index.php/TagLib_Sharp:_Examples

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文