2016-09-25 7 views
1

버튼을 누를 때마다 사운드를 재생하는 SKAction을 멈추려하고 있습니다 (백그라운드에서 다른 위치에서 무작위로 생성됨).하지만 할 수 있기를 바랍니다. 행동을 부르는 것. 나는 절대적으로 성공하지 못하고 약 2 시간 동안 이것을 알아 내려고 노력했다. 내가 작업을 중지하기 위해 노력하고있어 내 코드는 다음과 같습니다 :Xcode 8 Audio Stop AVAudio

let clickSound = SKAction.playSoundFileNamed("Click.wav", waitForCompletion: false) 
    //sound action 
    let playCorrectSoundEffect0 = SKAction.playSoundFileNamed("Correct0.wav", waitForCompletion: false) 
    //where im tying to create an action to stop the sound file above from playing 
    let stopCorrectSoundEffect0 = 
    let playCorrectSoundEffect1 = SKAction.playSoundFileNamed("Correct1.wav", waitForCompletion: false) 
    let playCorrectSoundEffect2 = SKAction.playSoundFileNamed("Correct2.wav", waitForCompletion: false) 
    let endSoundEffect = SKAction.playSoundFileNamed("GameOverSound", waitForCompletion: false) 

감사하고 당신이 이런 짓을하는 방법을 설명 할 수 있다면 놀라운 것입니다!

답변

0

점수를 특정 지점에서 벗어나면 모든 동작이 중단되고 원하는 사운드가 재생되도록 if 문을 작성하여 방금 해결했습니다. 모양은 다음과 같습니다.

if scoreNumber >= 10 { 
      removeAllActions() 
      self.run(playCorrectSoundEffect1) 
     } 

질문이 있으시면 언제든지 물어보십시오!

let path = Bundle.main.path(forResource: "sound.wav", ofType:nil)! 
let url = URL(fileURLWithPath: path) 

do { 
    let sound = try AVAudioPlayer(contentsOf: url) 
    clickSound = sound 
    sound.play() 
} catch { 
    // couldn't load file 
} 

하고 소리를 중지하려면, 당신은 그것의 stop() 방법을 사용한다 :

0

내 조언은 실제 스위프트 3 변경하지 마십시오, 당신의 게임에서 소리를 만들기 위해 AVAudioPlayer를 선택하는 것입니다 . 당신이 충돌합니다 귀하의 응용 프로그램을 존재하지 않는 소리를 중지하려고 그렇게한다면 그것은이 또한 SKAudioNode하지만 최근 많은 사람들이 나쁜 휘파람 같은 몇 가지 문제가 먼저이

if clickSound != nil { 
    clickSound.stop() 
    clickSound = nil 
} 
+0

같은 존재하는지 확인하는 것이 좋습니다 소리, 나는 IOS 10이 문제를 해결할지 모르겠다. 이것은 SKAudioNode 문제의 예입니다. https://www.kingsware.de/2016/07/16/using-avfoundation-to-play-audio-in-an-skaction-in-spritekit/ –

+0

시도해 주셔서 감사합니다. 도와 주려고했지만, 어젯밤 XD 작업의 약 3 시간 후에 그것을 알아 냈습니다. 그것은 if 문과 간단한 코드 줄이었습니다. 그러나 새로운 문제로 옮겼습니다. 내가 "Come Back"에 알림을 보낼 수 있도록 앱이 닫힐 때 트리거되는 타이머를 만들려고합니다. 당신이 저를 도와 주실 수 있다면, 그것은 놀라 울 것입니다. –

+0

SO 규칙 설명대로 새로운 질문을 엽니 다. 필요한 코드를 모두 작성할 수 있으므로 사람들이 새로운 문제에 집중할 수있게되어 기쁘게 생각합니다. –