2011-08-24 3 views
30

로컬 알림을 위해 재생되는 사운드를 어떻게 변경합니까? 아래의 코드를 사용하여 기본 사운드를 재생합니다.로컬 알림을위한 사용자 지정 사운드 선택

notif.soundName = UILocalNotificationDefaultSoundName; 

따라서 아래에서 시도했지만 작동하지 않았습니다. 어떻게해야합니까? 당신의 도움을 주셔서 감사합니다!

notif.soundName = @"sound.caf"; 
+0

제대로 작동해야합니다. 응용 프로그램 번들에'sound.caf'가 있습니까? – jtbandes

+0

예, 형식이 정확합니까? 나는 이름과 같은 것을 필요로하지 않는다 : 소리와 함께 엔딩 : caf, 또는 비슷한가? –

+0

예, 설명서에 확장 기능 만 포함되어 있습니다. – jtbandes

답변

29

그래야합니다. 사운드가 실제로 앱 번들에 있는지, 올바른 형식인지 (iOS 용 사운드를 변환하는 방법을 설명하는 선형 PCM 또는 IMA4 등) 30 초 미만인지 확인합니다.

+0

Xcode로 끌어다 놓으면 30 초 이내에 CAF가 작동합니까? –

+2

CAF는 컨테이너 형식입니다. 당신은 주어진 CAF가 올바른 종류의 데이터를 가지고 있다는 것을 확장에서 알 수 없다. Quicktime Player에서 사운드를 열고, Cmd-I을 눌러서 무비 관리자를 열고 포맷을 확인하십시오. 내가 거짓말을하고있는 소리는 그 형식이 "선형 PCM, 16 비트 리틀 엔디안 부호가있는 정수"라고 말했습니다. 사운드 파일이 그 이외의 것을 보여 준다면 그것은 아마 문제 일 것입니다. –

+0

대신 IMA4 형식을 사용하고 작동하도록했습니다. 당신의 도움을 주셔서 감사합니다! –

37

사용 WAV 및 MP3로 변환 할 수 있습니다

afconvert clockalarm.mp3 clockalarm.caf -d ima4 -f caff -v 

하나 여기에 교훈 :

afconvert -f caff -d [email protected] -c 1 in.wav out.caf 
+0

내가 그 명령을 입력하고 또한 ios 코드로 변환 할 수 있습니다 – srinadh

+0

afconvert는 쉘 응용 프로그램에서 사용할 수있는 명령 줄 프로그램입니다 귀하의 macosx –

15

나는 또한 아래의 명령을 사용하여 CAF을 MP3로 변환하려고 나는 몇 시간을 보냈다 지역 통보의 소리와 투쟁. 다른 비트 전송률 및 형식으로 변환하려고 시도했습니다. 하지만 마침내 iOS 6.1 에뮬레이터에 결함이있는 것으로 나타났습니다. 내가 장치에 코드를 배포, 잘 작동하지만 에뮬레이터에 어떤 소리가 없습니다.

+0

주셔서 감사합니다. 여기에서 배운 나의 최신 정보를 포함하도록 내용을 업데이트했습니다. –

+0

당신이 해결책을 찾았 기 때문에 – kleopatra

+2

mp3 파일이 작동하고있어 더 이상 caf 파일 형식이 아닌 –

8

나는이 모든 문제 (답변 주셔서 감사합니다)를 만났으며 .wav에서 .caf (sans 6.1 시뮬레이터)로 변환하여 문제를 해결할 수있었습니다. 마지막으로 필요한 것은 .caf가 내 앱 번들에 있는지 확인하는 것입니다. 이것을 확인/수정하려면 ...

"Project Navigator"에서 파일을 마우스 오른쪽 버튼으로 클릭하고 "파일 검사기 표시"를 선택하고 "대상 멤버쉽"영역에서 파일 옆에 체크 표시가 있는지 확인하십시오. 내 경우에는 "LocalNotificationExampleTests"가 유일한 항목입니다. "LocalNotificationExample"을 확인하면 기기의 사운드 부족 현상이 해결되었습니다.

1

Swift 3 통지 스케줄링 기능에서 notif 오브젝트에 대해 UNNotificationSound.init을 사용하십시오. 애플에 따르면,

func scheduleNotifications(inSeconds: TimeInterval, completion: @escaping (_ Success: Bool) ->()){ 
     ... 
     notif.sound = UNNotificationSound.init(named: "CustomSound.mp3") 
     ... 
} 

최종 참고 :

는 여기 스위프트 3 예입니다 "사운드 파일은/응용 프로그램의 데이터 컨테이너의 폴더를 소리 응용 프로그램의 번들이나 라이브러리에 포함되어야합니다. 두 위치 모두에 파일이 있으면 ~/라이브러리/사운드에있는 파일이 선호됩니다. "

관련 문제