2016-10-10 8 views
1

私は以下のコードでサウンドを生成しようとしています。エラーは発生していません。しかし、私がこのコードを実行すると、音はありません。この問題を解決するにはどうすればよいですか?ところでAVAudioPlayerNodeがサウンドを再生しない

、私はこの例を使用しています:それはローカル変数のように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() 

答えて

2

あなたAVAudioEngineに見える - スコープの外に行くと割り当て解除されています。それをクラスインスタンス変数に代入すれば、多少の音が聞こえるかもしれません。

関連する問題