我正在尝试播放来自 Golang 的声音。这是一个 .wav 文件。我想使用packr将 .wav 文件打包成可执行文件
我在这里创建了一个非常小的项目:带有代码的packr-test 存储库。
当我在默认文件夹中运行可执行文件 (./packr-test) 时,会播放声音。但我遇到的问题是,当我将可执行文件移动到另一个目录时,我在尝试播放声音文件时遇到错误。我认为这可能意味着声音文件没有与可执行文件捆绑在一起。
这是在 Ubuntu 上。我正在使用通常默认安装的“播放”命令,但如果它不存在,可以通过以下方式完成:
sudo apt-get install sox
sudo apt-get install sox libsox-fmt-all
使用播放命令:
play file_name.extension
为了节省您的查找时间,这是我的 Go 代码:
package main
import (
"fmt"
"os/exec"
"github.com/gobuffalo/packr"
)
func main() {
soundsBox := packr.NewBox("./sounds")
if soundsBox.Has("IEEE_float_mono_32kHz.wav") {
fmt.Println("It's there.")
} else {
fmt.Println("It's not there.")
}
args := []string{"-v20", "./sounds/IEEE_float_mono_32kHz.wav"}
output, err := exec.Command("play", args...).Output()
if err != nil {
// Play command was not successful
fmt.Println("Got an error.")
fmt.Println(err.Error())
} else {
fmt.Println(string(output))
}
}
这是我的输出:
sudo ./packr-test
It's there.
Got an error.
exit status 2
holdtom
相关分类