问题标签 [taglib-ruby]

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 投票
1 回答
373 浏览

ruby - taglib-ruby 和资源平衡(释放文件句柄)?

朋友们,

我正在尝试使用Ruby (1.9.3) 脚本通过使用相当快的(0.2.1 通过 Gem-Server)库扫描它们的ID3-Tags来处理大量音频文件。taglib-ruby

这是我的代码的一部分,同时audio包含 Ruby-String 中的完整文件路径:

然后我几乎在处理结束时遇到麻烦。TagLib抱怨缺少读取权限,FileUtils.mv之后不再能够移动文件。可能是这种情况,因为我的脚本没有释放文件句柄TagLib在处理时正在吃东西。

不幸的是,我没有在API 中找到某个 Ruby 方法taglib-ruby,它最终调用了一个或两个TagLibs C 函数:

libmagic例如,Ruby 绑定close在其Magic类中提供了一个 -Method,因此释放其中的确保块将起作用。

我只是缺少正确的 Ruby 方法taglib-ruby还是目前缺少?是否有另一种释放通过 Ruby 获得的文件句柄的方法?

0 投票
2 回答
1016 浏览

ruby-on-rails - RoR TagLib-Ruby:如何在 DB 中设置 ID3 标签

感谢您提前提供任何帮助。

我想在我的数据库中设置 id3 标签数据作为我的模型 MasterSong 的属性。具体来说,标题、艺术家和专辑。

在我的模型中,我使用回调在保存对象(master_song)之前设置数据。

我很确定我的语法是问题所在。该对象似乎遇到了错误

控制器创建动作正常:

我在这里做错了什么?更新:def set_id3_tags z = TagLib::MPEG::File.open(self.m_song.path) do |file| tag = file.id3v2_tag tag.title end self.update_attribute!(:title => z) end

现在得到堆栈级别太深的错误。

0 投票
1 回答
498 浏览

heroku - 使用 Vulcan 在 Heroku 上构建 cmake 作为 Taglib 的依赖项

我正在尝试让Taglib在 Heroku 上工作,所以我可以使用taglib-ruby gem。我一直在与 Vulcan 和 Custom Heroku Buildpack 进行斗争以使其正常工作。Taglib 的依赖项之一是 cmake,所以我一直在尝试首先让它工作。

Github 上有一个问题,它描述了如何使用 Vulcan 构建 cmake:Issue #32,但我一直从我的构建服务器得到相同的响应:

我认为一旦 cmake 工作,构建 Taglib 应该是相当直接的。

我也关注了 Ryan Daigle 关于如何使用 Vulcan 构建二进制应用程序依赖项的帖子。我已经为 Vulcan 服务器建立了一个远程 shell 并运行了:

…其中“5382f498-fd89-4c1a-9269-e05815294f40”是 Vulcan 在 cmake 构建错误时返回的 id,但我收到与上述相同的错误 - 不走运。

任何人都可以提供任何关于我应该设置 MAKE 环境变量以使其正常工作的见解吗?

0 投票
0 回答
364 浏览

heroku - Heroku 忽略捆绑配置

我正在尝试在 Heroku 上安装 gem 'taglib-ruby'。这个 gem 编译为一个本地扩展,它需要一个名为 taglib 的系统依赖项,所以在通过 heroku vulcan 编译和上传它之后,我实现了通过 heroku bash 上的命令行编译 gem:

为了以后捆绑器使用此参数,我通过以下命令将其添加为捆绑器配置:

我已经验证了此配置已应用,检查文件 /.bundle/config 并查找 BUNDLE_BUILD__TAGLIB-RUBY 行。

然而,在将我的项目推送到 heroku 并在执行bundle install命令时,heroku 抱怨无法安装上述 gem (taglib-ruby),因为 taglib 库不存在,尽管这是我试图解决的问题上面提到的选项“--with-opt-dir=/app/vendor/taglib” 。

因此,Heroku 似乎忽略了捆绑器配置。

会发生什么?您知道在 Heroku 上实现相同目的(安装带有自定义构建选项的 gem)的另一种方式吗?

0 投票
1 回答
1173 浏览

ruby-on-rails - 使用 Taglib-Ruby 为 Web 应用程序构建自定义 Heroku Ruby/Rails Buildpack

我使用 Rails 3.2 构建了一个使用 taglib-ruby gem 的应用程序。

我需要将此应用程序上传到 Heroku,但它无法成功构建 taglib-ruby gem,因为需要在机器上安装相关的 C++ taglib 库。

这导致我使用 Vulcan 构建自定义 buildpack 来安装我的应用程序。

按照https://github.com/heroku/vulcan/issues/32上的建议,我能够使用 Vulcan 成功安装 cmake 和 taglib。vulcan 下载到我在https://github.com/JllyGrnGiant/vulcan-buildpack托管的计算机上的生成文件

如果我进入我的应用程序目录并运行

然后尝试推送我的应用程序,构建器成功找到了 buildpack 但不知道如何继续安装我的应用程序

我相信这是因为我需要分叉默认的 ruby​​ buildpack。

现在我们解决了我的问题。在部署方面我不是很了解,所以我不知道在哪里包含我的 taglib 文件,也不知道要更改哪些其他文件,所以推送我的应用程序会找到那些 taglib 库来构建 taglib-ruby gem。Heroku 网站上帮助的打包二进制文件部分对我来说没有多大意义,更不用说在我没有二进制文件但有很多头文件和库的问题的上下文中。

其他问过关于 taglib-ruby 和 Heroku 的问题的人还没有安装 cmake,这对我来说完成得很好,我也找不到解释如何在 Ruby/Rails 的自定义 buildpack 中包含库的资源应用程序。

任何帮助将不胜感激。感谢您的时间。

0 投票
2 回答
387 浏览

ruby - 将 MP3 ID3V2 APIC 保存为 jpeg 文件

我正在尝试使用 taglib-ruby 读取 APIC 图片并将其保存到文件中,但我很难理解如何去做。据我所知,图像是“image/jpeg”和 ASCII-8BIT。有人试图做到这一点吗?

0 投票
2 回答
172 浏览

ruby-on-rails - 未初始化的常量 ActivityObjects::BuildController::TagLib

我曾尝试在 Rails 中使用 taglib。我将这段代码(见下文)放在控制器中,但出现此错误“未初始化的常量 ActivityObjects::BuildController::TagLib”

知道如何在 Rails 中使用 taglib 吗?

0 投票
1 回答
998 浏览

ruby - 在 Ubuntu 12.04 上安装 taglib-ruby gem 时缺少 libstdc++?

我正在尝试安装taglib-ruby但不断收到相同的错误:

mkmf.log 说明如下:

我按照自述文件中的说明进行安装libtag1-dev并仔细检查是否安装了 libstdc++(如果我错过了文件,我什至查看了 Ubuntu 软件中心)。我发现的唯一类似问题是这个,但我已经尝试明确定义opt-dirandopt-include也无济于事。

我不得不承认我对这个主题甚至 Ubuntu 都不是很熟悉,所以我很可能只是忽略或完全错过了有关错误消息的一些明显内容。

0 投票
1 回答
348 浏览

ruby-on-rails - taglib(-ruby) 无法读取特定文件

我正在实现一个 ruby​​ on rails 应用程序,它从 Dropbox 文件夹下载歌曲,然后对它们执行一些操作,例如提取一些元标记。现在,我正在使用属于同一专辑的 10 个 mp3,因此它们具有相同的编码等。但是,当尝试使用taglib-ruby读取元标记时,10 个文件中的 3 个会抛出错误,说:

我使用左侧提供的代码作为指导,导致:

首先我认为下载的文件可能已损坏,但检查 nautilus 中的元数据显示结果正常,并且节奏盒也可以播放它。我想使用 taglib-ruby 的基本 API 而不是特定格式的 API,因为我只需要检索艺术家和标题,但需要能够从各种格式的文件中获取它。

有谁知道如何解决这个问题?考虑到我是这个话题的新手,我可能错过了一些非常明显的东西。

编辑:考虑到robinst 的评论,这是ls -l各个文件的列表:

0 投票
0 回答
753 浏览

ruby - 使用 taglib-ruby 解析 id3 标签信息的音频文件时出错

我正在尝试使用 taglib-ruby gem 从音频文件中获取 ID3 文件信息,就像这样......

但我收到了这个错误(下)

重载方法“File.new”的错误参数。可能的 C/C++ 原型是: File.new(TagLib::FileName file, bool readProperties, TagLib::MPEG::Properties::ReadStyle propertiesStyle) File.new(TagLib:: FileName 文件,bool readProperties) File.new(TagLib::FileName 文件) File.new(TagLib::FileName 文件,TagLib::ID3v2::FrameFactory *frameFactory, bool readProperties, TagLib::MPEG::Properties::ReadStyle propertiesStyle ) File.new(TagLib::FileName 文件, TagLib::ID3v2::FrameFactory *frameFactory, bool readProperties) File.new(TagLib::FileName 文件, TagLib::ID3v2::FrameFactory *frameFactory)

任何想法可能导致此错误?