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()
}
}
}
소음을 재생하려면를, 나는 통해 클래스를 호출
그러나 오디오를 재생하지 못하고 구현에 문제가있는 사람이 있습니까?
편집 : 당신의 MusicAudio 클래스가 해제되고 있기 때문에 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
@ 라이언, 내가 편집 한 내용에서 원래 게시 한 내용과 다른 내용은 표시되지 않습니다. 변경 사항은 IBAction이있는보기 컨트롤러 클래스에 있어야합니다. – rdelmar
오, 알았어!, 내 편집에서 나는 "var bassAudio : AVAudioPlayer! = AVAudioPlayer()"(상단의 클래스 자체 외부에서) 문제를 해결했습니다. 나는 당신이 의미하는 것을 구현했고 그것은 지금도 작동합니다 :) – Ryan