Я пытаюсь воспроизвести звук с Голанга. Это файл .wav. И я хочу упаковать файл .wav в исполняемый файл, используя packr
Я создал очень маленький проект здесь: packr-test репозиторий с кодом.
Когда я запускаю исполняемый файл (./packr-test) в его папке по умолчанию, воспроизводится звук.
Но проблема у меня заключается в том, что когда я перемещаю исполняемый файл в другой каталог, я получаю сообщение об ошибке при попытке воспроизвести звуковой файл. Возможно, это означает, что звуковой файл не связан с исполняемым файлом.
Это на Ubuntu. Я использую команду 'play', которая часто устанавливается по умолчанию, но если ее там нет, это можно сделать с помощью:
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