2014-07-25 1 views
7

시스템 사운드를 재생하려고합니다. Xcode 6 베타 4 사용하기 코드는 다음과 같습니다.시뮬레이터에서 ios 시스템 사운드가 재생되지 않는 이유는 무엇입니까?

func playKeyClick() 
{ 
    let filePath = NSBundle.mainBundle().pathForResource("Tock", ofType: "aiff") 
    if NSFileManager.defaultManager().fileExistsAtPath(filePath) { 
     println("file exists") 
    } 
    let fileURL = NSURL(fileURLWithPath: filePath) 
    var soundID:SystemSoundID = 0 
    AudioServicesCreateSystemSoundID(fileURL, &soundID) 
    AudioServicesPlaySystemSound(soundID) 
} 

이 코드는 장치에서는 잘 작동하지만 시뮬레이터에서는 재생되지 않습니다. 나는 아무것도하지 않고이 사운드를 재생하는 테스트 응용 프로그램을 만들었 기 때문에 나는 그것을 멈추는 데 아무 것도하지 않는다고 생각합니다.

시뮬레이터는 Safari 앱에서 사운드를 재생하므로, 내 앱에서 사운드를 재생할 수 있다고 가정합니다.

나는 시뮬레이터가 아닌 장치에서도 작동하는 다른 두 가지 방식으로 사운드를 재생하는 다른 코드가 있음에 유의하십시오. 나는 단순화를 위해이 예를 선택했다.

편집 - 변경된 파일은 파일이 지정한 경로에 존재하지 않기 때문에 혼란을

+1

가능한 중복 작동 : 세 가지 방법의 나는 사운드를하려고 노력했으며 하나가 작동하지 않습니다 [소리가 아이폰 시뮬레이터에서 작동하지 않습니다?] (http://stackoverflow.com/questions/302399/sound-not-working-in-iphone-simulator) –

+0

당신은 주장해야합니다 (즉 assert (soundID! = 0)) 그 소리를 설정 한 후, 그 소리가 들리도록하십시오. 또한 AudioServicesCreateSystemSoundID는 OSStatus를 반환하고 인쇄합니다. –

+0

나는 소리가 나지 않는 아이폰 시뮬레이터 답안에 따라 시스템 사운드 설정과 미디 설정을 조정했다. 내가 시도 할 수 없었던 것은 라인 입력을 입력으로 설정하는 것뿐이었고, 옵션은 존재하지 않는다 (대신 마이크 사용). –

답변

0

을 방지하기 위해 번들 자원에. 이를 테스트하려면, 해당 지역에 사운드 파일을 저장하고 해당 경로를 코드 (예를 들어, 아래 참조)를 지정 - 내가 배운 것을 명확히하기 위해 내 자신의 질문에 대답하고

let fileURL = NSURL(fileURLWithPath: "/Users/<Home dir>/Desktop/yoursund.mp3") 
+0

나는 내 질문을 편집하여 파일을 응용 프로그램에 로컬로 만들고 파일을 찾은 인쇄 확인을 인쇄했습니다. 문제가 지속됩니다. –

7

합니다. 원래 코드가 작동하지 못하게하는 세 가지 문제가있었습니다. 참고 시뮬레이터에서 Xcode6 Beta4 및 iphone 5를 사용하고 있습니다.

1- 시뮬레이터에서 "/System/Library/Audio/UISounds/Tone.caf"의 원본 파일 경로가 작동하지 않습니다.이 파일은 장치에서만 유효합니다. 앱에 오디오 파일을 추가하여 수정했습니다.

2- Sound not working in iPhone Simulator?은 ios 7.1 및 이전 버전에서 정상적으로 작동하는 정보를 제공했습니다. ios8을 테스트 한 이후 몇 가지 제안 사항 중 어느 것이 효과가 있었는지 확실하지 않았습니다.

3 ios7에서 작동하는 동일한 코드가 ios8에서 작동하지 않기 때문에 io8 시뮬레이터 코드에 버그가 있다고 가정합니다 (ios8 장치는 정상적으로 작동합니다).

의 AudioUnit 출력을 작동하지 않습니다 - -

AudioServicesPlaySystemSound() 작동

AVAudioPlayer는 -

+3

AudioServicesPlaySystemSound()가 iOS 7.1 에서처럼 작동하지 않는지 확인합니다. 시뮬레이터에서 사운드가 재생되지는 않지만 실제 장치에서는 작동합니다.(Xcode 6 GM에서 테스트 됨) – John

+2

시뮬레이터에서 AudioServicesPlaySystemSound()가 작동하지 않습니다. 그것은 장치에서 작동합니다. Xcode 6.0.1 및 iOS 8.0으로 테스트되었습니다. –

+0

1 월 15 일 (XCode 6.1)부터는 아직 작동하지 않습니다. –

관련 문제