2016-09-16 9 views
9

어제 Sprite Kit 게임을 X-Code 8.0과 Swift 3으로 업그레이드했습니다. 배포 대상은 현재 iOS 9.3으로 설정되어 있습니다.Sprite Kit : 사운드 재생 오류가 발생하는 이유는 무엇입니까?

사운드 효과 (단지 샘플의 절반에 대해) 제대로 연주와 나는 업그레이드 이후에 (다음과 같은 오류가되지
self.run(SKAction.playSoundFileNamed("click.caf", waitForCompletion: false)) 

X-코드 8.0 :

나는 음향 효과를 다음과 같은 방법을 재생 스위프트 3) :

SKAction: Error playing sound resource 

아이디어가 있으십니까?

+0

나는 정확히 같은 문제를 참조하십시오. 나는 여기에 글을 쓸 예정이었다. 나는 이와 같은 wav를 연주하려고 시도했다. [SKAction playSoundFileNamed : @ "throw.wav"waitForCompletion : NO]. 이전에 Xcode7/iOS9에서 작동했습니다. –

+0

~ 50이 실패하면 갑자기 작동하기 시작합니다. 너도 마찬가지야? –

+0

실제 장치 또는 장치 시뮬레이터에서 사용해 보셨습니까? –

답변

4

이 사전로드 코드를 제거하면 문제가 사라졌습니다. 당신은 비슷한 것을 가지고 있습니까? 그러나 이제는 사운드가 처음 재생 될 때 약간의 지연이 있습니다. 어떻게 처리 할 지 모르겠다.

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Preload sounds 
    [SKAction playSoundFileNamed:@"coinBlip.wav" waitForCompletion:NO]; 
    [SKAction playSoundFileNamed:@"bonus.wav" waitForCompletion:NO]; 
    : 

내 버그 리포트 (28350796)는 이제 수정되었습니다, 나는 베타 시뮬레이터에서 아이폰 OS 10.2 에 그것을 확인했습니다. 문제가 iOS 10.2에 여전히 존재한다면 새로운 버그 보고서를 추가하십시오!

+0

다시 나타났습니다. 그러나 훨씬 덜 빈번합니다. 두 개의 사운드가 동시에로드되면 문제가 유발 될 수 있습니까? –

+0

예 사전로드 코드를 제거했습니다. 지금까지는 지연없이 작동합니다 ... – salocinx

+0

압축되지 않은 * .wav 형식에 비해 훨씬 작은 * .caf 형식을 사용하고 있습니다. 아마도 이것은 지연을 유발합니까? – salocinx

3

나는 저와 함께 작동하는 해결책을 발견했습니다. 내가 대신 사전로드 된 사운드의 계산 SKAction 사운드 속성을 사용 : 나는 또한이 문제를 가지고 그리고 난 노드가 소리를 재생하려고하는 경우에 그것을 아래로 추적 한 그것은의 인스턴스를 만들었습니다

var enemyCollisionSound: SKAction { return SKAction.playSoundFileNamed("hitCatLady.wav", waitForCompletion: false) } 
+0

직선 할당 (=)도 여기에서 작동합니까? – Confused

2

코드 내의 다른 객체와 그 객체는 오디오 코드가 미리로드되어 있습니다. 다른 객체를 만든 노드는 해당 사운드를 재생하지 않습니다.

0

특정 사운드가 처음 재생 될 때 "SKAction : 사운드 리소스 재생 오류"라는 오류가 발생하면서 "didMoveToView"의 빈 변수에 사운드의 SKAction을 할당하면이 문제가 완전히 해결되었습니다. .

은 일반 간단한 방법으로 사운드 작업을 선언 :
let waterDropSoundAction = SKAction.playSoundFileNamed("WaterDrop.caf", waitForCompletion: false) 

그런 다음 실제로 didMoveToView에서 재생하지 않고 소리 조치를로드 :

let _ = waterDropSoundAction