返回顶部
首页 > 资讯 > 后端开发 > GO >如何将 gobuffalo/packr 与 Golang 一起使用
  • 565
分享到

如何将 gobuffalo/packr 与 Golang 一起使用

2024-04-04 23:04:01 565人浏览 泡泡鱼
摘要

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《如何将 Gobuffalo/pa

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《如何将 Gobuffalo/packr 与 golang 一起使用》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过编程网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我正在尝试播放 golang 中的声音。这是一个 .wav 文件。我想使用 packr 将 .wav 文件打包成可执行文件

我在这里创建了一个非常小的项目:包含代码的 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


解决方案


即使您已将其打包到二进制文件中,您仍然引用文件系统上的文件:

args := []string{"-v20", "./sounds/ieee_float_mono_32khz.wav"}
output, err := exec.command("play", args...).output()

您可以像这样从 packr 框中获取文件数据:

bytes, err := soundsbox.findbytes("ieee_float_mono_32khz.wav")

要使用 exec.command() 执行文件,我认为您必须将这些字节写回文件系统:

err := ioutil.writefile("/tmp/ieee_float_mono_32khz.wav", bytes, 0755)
exec.command("play", []string{"-v20", "/tmp/ieee_float_mono_32khz.wav"}

您也许可以通过标准输入将字节传递给 play,但这取决于 play 二进制文件的工作方式。

cmd.Stdin = bytes
cmd.Run()

以上就是《如何将 gobuffalo/packr 与 Golang 一起使用》的详细内容,更多关于的资料请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: 如何将 gobuffalo/packr 与 Golang 一起使用

本文链接: https://lsjlt.com/news/596365.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何将 gobuffalo/packr 与 Golang 一起使用
    编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《如何将 gobuffalo/pa...
    99+
    2024-04-04
  • 如何将泛型与自定义类型一起使用?
    php小编百草为您介绍如何将泛型与自定义类型一起使用。泛型是一种在编程中常用的技术,它可以使代码更加灵活和可复用。而自定义类型则是根据业务需求,开发者自己定义的数据类型。当我们需要在自...
    99+
    2024-02-09
  • 将 PHP 与 Visual Studio 代码一起使用
    许多开发人员最流行的 IDE 是 Visual Studio Code。它是一个免费的开源编辑器,适用于多种语言,由许多开发人员和 Microsoft 管理和维护。 Visual Studio Co...
    99+
    2024-02-27
  • 如何将 TLS 1.2 与 MySql Go 驱动程序一起使用?
    php小编柚子在这篇文章中将为您介绍如何将TLS 1.2与MySQL Go驱动程序一起使用。TLS 1.2是一种安全传输协议,用于保护网络通信的安全性。在使用MySQL Go驱动程序连...
    99+
    2024-02-10
    安全传输 lsp
  • 如何将密码与官方 postgres docker 镜像一起使用?
    问题内容 尝试使用官方 postgres docker 镜像: docker run --rm -d \ --name my-postgres \ --...
    99+
    2024-02-05
  • 如何将gitlab与Jenkins安装在一起
    这篇“如何将gitlab与Jenkins安装在一起”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何将gitlab与Jenk...
    99+
    2023-07-05
  • 我们如何将 MySQL 子查询与 INSERT 语句一起使用?
    可以通过一个示例来理解,在示例中我们将一个表的值复制到另一个表中。我们正在使用表“cars”中的数据并将其数据复制到表“copy_cars” -mysql> CREATE TABLE copy_cars LIKE cars; Quer...
    99+
    2023-10-22
  • 我们如何将 SIGNAL 语句与 MySQL 触发器一起使用?
    实际上,MySQL SIGNAL 语句是一种错误处理机制,用于处理意外事件,并在需要时从应用程序正常退出。基本上,它向处理程序提供错误信息。其基本语法如下 -SIGNAL SQLSTATE | condition_value [SET si...
    99+
    2023-10-22
  • 我们如何将 MySQL SUM() 函数与 HAVING 子句一起使用?
    通过将 MySQL SUM() 函数与 HAVING 子句结合使用,它会根据 HAVING 子句后给出的特定条件过滤结果。要理解上述概念,请考虑一个“employee_tbl”表,该表具有以下记录 -mysql> SE...
    99+
    2023-10-22
  • 我们如何将 MySQL INSTR() 函数与 WHERE 子句一起使用?
    当我们将 INSTR() 函数与 MySQL WHERE 子句一起使用时,我们需要提供表的列名作为第一个参数,提供子字符串作为第二个参数以及比较运算符。以下是使用“学生”表进行演示的示例 -示例假设“学生”表中有以下值 -mysql...
    99+
    2023-10-22
  • 我们如何将 MySQL SUM() 函数与 HAVING 子句一起使用
    在使用MySQL的SUM()函数时,你可以将它与HAVING子句一起使用,以筛选出满足特定条件的汇总结果。下面是一个示例,演...
    99+
    2023-10-20
    MySQL
  • 我们如何将 WHERE 子句与 MySQL INSERT INTO 命令一起使用?
    在插入新行的情况下,我们可以使用条件插入,即 WHERE 子句和 INSERT INTO 命令。可以通过以下方式完成 -借助虚拟表在这种情况下,我们插入虚拟表中的值以及一些状况。语法如下 -INSERT INTO table_nam...
    99+
    2023-10-22
  • 如何使用JS将聊天记录聚合在一起
    这篇文章主要介绍了如何使用JS将聊天记录聚合在一起,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。实现思路先跟大家看下我的数据,如下所示:[{...
    99+
    2024-04-02
  • 如何将 REPLACE() 与 UPDATE 子句一起使用来对表进行永久更改?
    我们知道 REPLACE() 函数用于将字符串中出现的一个子字符串替换为另一个子字符串。我们还可以使用 REPLACE 函数和 UPDATE 语句来更新表。以下示例将演示它 -示例mysql> Update Student s...
    99+
    2023-10-22
  • 如何使用npm将ASP路径和NumPy组合在一起?
    Node.js是一个强大的JavaScript运行环境,它允许开发人员使用JavaScript编写服务器端代码。ASP(Active Server Pages)是一种服务器端脚本技术,用于创建动态Web页面。而NumPy则是Python编...
    99+
    2023-10-24
    path numpy npm
  • 如何将 gomega 的 ContainElements 匹配器与自定义相等匹配器一起使用
    学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《如何将 gomega 的 ContainElements 匹配器与自定义相等匹配器一起使用》,以下内容主要包含等知识点,如果你正在学习或...
    99+
    2024-04-05
  • 数组在PHP中如何与响应一起使用?
    在PHP中,数组是一种十分重要的数据结构,它可以存储多个值,并且可以通过键值对的方式进行访问。同时,在Web开发中,响应也是一个非常重要的概念,它表示服务器返回给客户端的数据。本文将介绍如何在PHP中将数组与响应一起使用。 一、数组的基本...
    99+
    2023-11-04
    响应 数组 numy
  • Leetcode和Spring如何一起使用?
    Leetcode和Spring如何一起使用? Leetcode是一个非常流行的编程题库,可以帮助开发者提高编程技能。而Spring是一个非常流行的Java框架,可以帮助开发者更快地开发应用程序。在这篇文章中,我们将介绍如何在Spring中使...
    99+
    2023-09-02
    leetcode spring 响应
  • For-Range 如何在 golang 中与汇编代码一起工作?
    php小编草莓为您介绍一种在golang中与汇编代码一起工作的方法——For-Range。For-Range是golang中的一个循环结构,可以与汇编代码结合使用,提供更高效的性能和灵...
    99+
    2024-02-09
  • 我们如何将 LPAD() 或 RPAD() 函数与 MySQL 表的列中的值一起使用?
    为了将 LPAD() 或 RPAD() 函数与列值一起使用,我们需要将列名指定为这些函数的第一个参数。按照“学生”表中的示例会更清楚 -示例mysql> Select Name, LPAD(Name,10,&...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作