如何在Elixir中读取和写入id3v1和id3v2标签

保罗·B

我想使用Elixir扫描音乐文件和读取/写入元数据(这整个项目都是关于学习Elixir的,所以请不要告诉我使用Python!)。据我了解,我有两种选择:调用系统实用程序或(由于我所知道的Erlang或Elixir中不存在任何库)编写Elixir库。对于m4a文件,我对MP4Box进行了系统调用,并且将xml文件写入磁盘。然后,我读入文件,对其进行解析,然后将数据加载到数据库中。

def parse(file_name) do
  System.cmd("MP4Box", ["-diso",file_name])
  Ainur.XmlParser.parse(xml_file_name(file_name))
  |> get_tags
end

非常慢,尤其是对于数千个文件。我希望它每次启动时都运行以检查更改/新文件。

现在,我尝试对具有id3标签的mp3进行相同操作。我在Ubuntu上尝试了libid3-tools,但只找到了id3v1标签。eyeD3仅找到id3v2标签。我的mp3兼有,所以我需要确保它们相同(我想我可以删除id3v1标签,但是我被认为是旧设备需要id3v1标签)。

是否有用于音乐元数据的Erlang或Elixir库?如果不是,对ubuntu实用程序的系统调用是我的最佳选择(关于哪个建议)?

还是我需要编写一个库以获得合理的性能?如果是这样,是否存在我可以尝试移植的功能性语言库?

还是可以直接从Elixir调用用另一种语言编写的库(无需系统调用)?

PawełObrok

您始终可以使用erlang NIF(http://erlang.org/doc/tutorial/nif.html)包装外部库

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用id3v2和sed编写id3标签脚本

来自分类Dev

如何使用Java读写ID3v2标签?

来自分类Dev

Python:使用Kaitai Struct读取ID3v1标签

来自分类Dev

如何停止将已知类型转换为id3v2标签中的数字?

来自分类Dev

使用JavaFX MediaPlayer从MP3读取ID3v2标签

来自分类Dev

使用youtube-dl和id3v2的mp3标签出现问题

来自分类Dev

用于编写flac,ogg vorbis和mp3 id3v2元数据的命令行工具?

来自分类Dev

用于解析ID3v2标签的正则表达式

来自分类Dev

类变量V3取决于V1和V2。如何在儿童班级中定义V3

来自分类Dev

如何将utf8转换为cp1251以写入mp3文件的ID3_V1标签?

来自分类Dev

如何在DataOutputStream中读取和写入整数-1

来自分类Dev

如何从id3删除Lyrics3 v2标签?

来自分类Dev

如何在Windows Universal App中使用Youtube Data API v3和视频ID播放视频

来自分类Dev

使用原生Chrome Javascript / FileReader / DataView读取id3 v2.4标签

来自分类Dev

如何在tkinter中并排包装3个单选按钮和1个标签?

来自分类Dev

如何在linqtotwitter v2.1中使用since_id和max_id进行分页?

来自分类Dev

如何在linqtotwitter v2.1中使用since_id和max_id进行分页?

来自分类Dev

如何在D3中对齐文本和标签

来自分类Dev

如何在D3中对齐文本和标签

来自分类Dev

如何在Mailjet v3 PHP包装器中获取联系人ID?

来自分类Dev

如何在Android的Youtube API V3中按频道ID获取Youtube实时流?

来自分类Dev

如何在Android的Youtube API V3中按频道ID获取Youtube实时流?

来自分类Dev

如何在特定的存储器地址中读取和写入1个字节?

来自分类Dev

如何在Google Maps API v3中检测进入和退出streetView

来自分类Dev

如何一次读取和写入 3 位流?

来自分类Dev

擦除和重写MP3 ID3标签

来自分类Dev

如何在Android中读取和写入csv文件?

来自分类Dev

如何在Python中读取和写入INI文件

来自分类Dev

如何在Python中读取和写入INI文件

Related 相关文章

  1. 1

    使用id3v2和sed编写id3标签脚本

  2. 2

    如何使用Java读写ID3v2标签?

  3. 3

    Python:使用Kaitai Struct读取ID3v1标签

  4. 4

    如何停止将已知类型转换为id3v2标签中的数字?

  5. 5

    使用JavaFX MediaPlayer从MP3读取ID3v2标签

  6. 6

    使用youtube-dl和id3v2的mp3标签出现问题

  7. 7

    用于编写flac,ogg vorbis和mp3 id3v2元数据的命令行工具?

  8. 8

    用于解析ID3v2标签的正则表达式

  9. 9

    类变量V3取决于V1和V2。如何在儿童班级中定义V3

  10. 10

    如何将utf8转换为cp1251以写入mp3文件的ID3_V1标签?

  11. 11

    如何在DataOutputStream中读取和写入整数-1

  12. 12

    如何从id3删除Lyrics3 v2标签?

  13. 13

    如何在Windows Universal App中使用Youtube Data API v3和视频ID播放视频

  14. 14

    使用原生Chrome Javascript / FileReader / DataView读取id3 v2.4标签

  15. 15

    如何在tkinter中并排包装3个单选按钮和1个标签?

  16. 16

    如何在linqtotwitter v2.1中使用since_id和max_id进行分页?

  17. 17

    如何在linqtotwitter v2.1中使用since_id和max_id进行分页?

  18. 18

    如何在D3中对齐文本和标签

  19. 19

    如何在D3中对齐文本和标签

  20. 20

    如何在Mailjet v3 PHP包装器中获取联系人ID?

  21. 21

    如何在Android的Youtube API V3中按频道ID获取Youtube实时流?

  22. 22

    如何在Android的Youtube API V3中按频道ID获取Youtube实时流?

  23. 23

    如何在特定的存储器地址中读取和写入1个字节?

  24. 24

    如何在Google Maps API v3中检测进入和退出streetView

  25. 25

    如何一次读取和写入 3 位流?

  26. 26

    擦除和重写MP3 ID3标签

  27. 27

    如何在Android中读取和写入csv文件?

  28. 28

    如何在Python中读取和写入INI文件

  29. 29

    如何在Python中读取和写入INI文件

热门标签

归档