小编Jim*_*ung的帖子

如何在Go中使用portaudio和sndfile播放wav文件

首先,我是Go和低级编程世界的新手,所以忍受我... :)

所以我要做的就是这个; 读取带有libsndfile 绑定的.wav文件,然后使用portaudio播放它.

我找不到任何这方面的例子,显然我缺乏关于指针,流和缓冲区的基本知识来实现​​这一点.到目前为止,这是我对它的看法,我试图阅读文档和我能够找到的几个例子并将各个部分组合在一起.我想我能够打开文件和流,但我不知道如何连接这两个.

package main

import (
    "code.google.com/p/portaudio-go/portaudio"
    "fmt"
    "github.com/mkb218/gosndfile/sndfile"
    "math/rand"
)

func main() {
    portaudio.Initialize()
    defer portaudio.Terminate()

    // Open file with sndfile
    var i sndfile.Info
    file, fileErr := sndfile.Open("hello.wav", sndfile.Read, &i)
    fmt.Println("File: ", file, fileErr)

    // Open portaudio stream
    h, err := portaudio.DefaultHostApi()
    stream, err := portaudio.OpenStream(portaudio.HighLatencyParameters(nil, h.DefaultOutputDevice), func(out []int32) {
        for i := range out {
            out[i] = int32(rand.Uint32())
        }
    })
    defer stream.Close()
    fmt.Println("Stream: ", stream, err)

    // Play portaudio stream …
Run Code Online (Sandbox Code Playgroud)

audio go

2
推荐指数
1
解决办法
1155
查看次数

标签 统计

audio ×1

go ×1