AVAudioPlayerNode 不播放声音
Posted
技术标签:
【中文标题】AVAudioPlayerNode 不播放声音【英文标题】:AVAudioPlayerNode doesn't play sound 【发布时间】:2016-10-10 12:52:39 【问题描述】:我正在尝试使用以下代码生成声音。一切都很好,没有错误。但是当我执行这段代码时,没有声音。我该如何解决这个问题?
顺便说一下,我用的是这个例子:http://www.tmroyal.com/playing-sounds-in-swift-audioengine.html
var ae:AVAudioEngine
var player:AVAudioPlayerNode?
var mixer:AVAudioMixerNode
var buffer:AVAudioPCMBuffer
ae = AVAudioEngine()
player = AVAudioPlayerNode()
mixer = ae.mainMixerNode;
buffer = AVAudioPCMBuffer(pcmFormat: player!.outputFormat(forBus:0), frameCapacity: 100)
buffer.frameLength = 100
// generate sine wave.
var sr:Float = Float(mixer.outputFormat(forBus:0).sampleRate)
var n_channels = mixer.outputFormat(forBus:0).channelCount
var i:Int=0
while i < Int(buffer.frameLength)
var val = sinf(441.0*Float(i)*2*Float(M_PI) / Float(sr))
buffer.floatChannelData?.pointee[i] = val * 0.5
i+=Int(n_channels)
// setup audio engine
ae.attach(player!)
ae.connect(player!, to: mixer, format: player!.outputFormat(forBus: 0))
ae.prepare()
try! ae.start()
// play player and buffer
player!.scheduleBuffer(buffer, at: nil, options: .loops, completionHandler: nil)
player!.play()
【问题讨论】:
【参考方案1】:您的AVAudioEngine
看起来像是一个局部变量——它将超出范围并被释放。将它分配给一个类实例变量,也许你会听到一些声音。
【讨论】:
以上是关于AVAudioPlayerNode 不播放声音的主要内容,如果未能解决你的问题,请参考以下文章
ReactNative:Expo-AV 将声音播放对象放入 Redux 存储是不是可以/正确?
播放音乐时,我的音频应用程序中没有收到通知或消息的声音 | AV音频播放器
有没有办法使用 AVAudioPlayerNode 从头开始重播声音?
AVAudioEngine & AVAudioPlayerNode didFinish 方法,如 AVAudioPlayer