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