gpt4 book ai didi

ruby-on-rails - gem使用的声音文件的位置

转载 作者:行者123 更新时间:2023-12-03 01:52:15 25 4
gpt4 key购买 nike

我正在修补 gem 以用于轨道上的 ruby ,在一个可执行文件上,我想播放波形文件中的声音,但是它似乎不起作用,因为我认为安装了 gem ...
到目前为止,我有

cmd = ("afplay 'sound/activated.wav'")
exec cmd

我的gem文件夹中的文件位于und lib / sound / activate.wav,但是如果我使用我的gem,则找不到该文件...
我必须存储文件的特定位置吗?
谢谢

最佳答案

如果运行该命令,afplay将在当前目录而不是gem目录中查看sound/activated.wav

在Ruby 2.x中,您可以在__dir__中找到脚本所在的目录。因此(采取所有预防措施):

require 'shellwords'
file = File.join(__dir__, 'sound', 'activated.wav')
escfile = Shellwords.escape(file)
cmd = "afplay #{escfile}"

如果您需要使其与旧的 ruby 兼容, File.dirname(File.realpath(__FILE__))__dir__是同一件事。

请注意, exec将用新的 ruby进程替换您的 afplay进程,这显然将终止您的Ruby代码。在大多数情况下,您宁愿想要 system

关于ruby-on-rails - gem使用的声音文件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38630793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com