使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件)

本文介绍了如何利用Go语言的beep库和 fyne GUI库来实现mp3文件的播放。首先,通过打开mp3文件并使用mp3.Decode进行解码,然后初始化speaker并播放音频流。虽然这个示例仅实现了基本的播放功能,没有包含暂停和快进等高级操作,但它为构建更完整的音乐播放器提供了基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件)

使用beep播放mp3文件(10num)

  • 使用go语言GUI库fyne实现音乐播放器
    要是想使用go语言实现播放mp3需要借助beep库,在github上有已经开源的库路径如下:beep库文件路径
    下面的代码只是实现了简单的播放功能,没有暂停和快进的功能
package main

import (
   "github.com/faiface/beep"
   "github.com/faiface/beep/mp3"
   "github.com/faiface/beep/speaker"
   "log"
   "os"
   "time"
)

/*
 使用go语言实现map播放器
*/

func main() {
// 1. 打开mp3文件
   audioFile, err := os.Open("/work/video/how_dare_you_say_dont_love_you.mp3")
   if err != nil {
      log.Fatal(err)
   }
   // 使用defer防止文件描述服忘记关闭导致资源泄露
   defer audioFile.Close()

   // 对文件进行解码
   audioStreamer, format, err :=  mp3.Decode(audioFile)
   if err != nil {
      log.Fatal(err)
   }

   defer audioStreamer.Close()
   // SampleRate is the number of samples per second. 采样率
   _ = speaker.Init(format.SampleRate, format.SampleRate.N(time.Second / 10))

   // 用于数据同步,当播放完毕的时候,回调函数中通过chan通知主goroutine
   done := make(chan bool)
   // 这里播放音乐
   speaker.Play(beep.Seq(audioStreamer, beep.Callback(func() {
      // 播放完成调用回调函数
      done <- true
   })))
   
   // 等待播放完成
   <- done
}

飞书文档:
mp3播放器使用go语言GUI库fyne实现

更多内容:
关注微信公众号,持续更新
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Achilles.Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值