1
我已經爲了創建了下面的對象類AVAudioPlayer的發揮噪音:AVAudioPlayer目標聲音不播放 - 斯威夫特
@IBAction func testSound() {
var sound:MusicAudio = MusicAudio()
sound.adjustAudioLayerState(true, layer: AudioLayerState.Bass)
}
:
class MusicAudio: NSObject, AVAudioPlayerDelegate {
var bassAudio : AVAudioPlayer! = AVAudioPlayer()
override init() {
super.init()
let bassAudioPath = NSBundle.mainBundle().pathForResource("Raw", ofType:"mp3")
let fileURL = NSURL(fileURLWithPath: bassAudioPath!)
bassAudio = AVAudioPlayer(contentsOfURL: fileURL, error: nil)
bassAudio.currentTime = 0
bassAudio.volume = 1.0
bassAudio.delegate = self
}
func adjustAudioLayerState(volumeOn:Bool, layer:AudioLayerState) {
if layer == AudioLayerState.Bass {
self.bassAudio.prepareToPlay()
self.bassAudio.play()
}
}
}
要播放的噪音,我通過調用類
但是我沒有收到任何音頻播放,任何人都可以發現我的執行問題?
編輯:rdelmar答案
var bassAudio : AVAudioPlayer! = AVAudioPlayer()
class MusicAudio: NSObject, AVAudioPlayerDelegate {
override init() {
super.init()
let bassAudioPath = NSBundle.mainBundle().pathForResource("Raw", ofType:"mp3")
let fileURL = NSURL(fileURLWithPath: bassAudioPath!)
bassAudio = AVAudioPlayer(contentsOfURL: fileURL, error: nil)
bassAudio.currentTime = 0
bassAudio.volume = 1.0
bassAudio.delegate = self
}
func adjustAudioLayerState(volumeOn:Bool, layer:AudioLayerState) {
if layer == AudioLayerState.Bass {
self.bassAudio.prepareToPlay()
self.bassAudio.play()
}
}
}
這已經修復了這個問題,但是在我的頭上修復(見編輯問題)似乎雜亂 - 有沒有更合適的方法,我應該在斯威夫特做這個還是我多心嗎? – Ryan 2014-10-10 17:31:58
@Ryan,我沒有看到任何與您最初發布內容不同的內容。更改需要在具有IBAction的視圖控制器類中。 – rdelmar 2014-10-10 17:39:43
哦,我明白了!在我的編輯中,我在頂部之外移動了「var bassAudio:AVAudioPlayer!= AVAudioPlayer()」類(它也解決了問題)。我已經實現了你的意思,它現在雖然工作:) – Ryan 2014-10-10 17:50:25