如何在iOS App Bundle中创建非本地化资源

我正在尝试在我的应用程序收到通知时播放自定义声音,作为 Apple Docs的一部分,这应该通过以下方式完成:

您可以将音频数据打包在aiff,wav或caf文件中.然后,在Xcode中,将声音文件作为应用程序包的非本地化资源添加到项目中

我的问题是你如何创建一个非本地化的资源?将音频文件拖放到Xcode项目时会自动创建吗?是否在Info.plist中指定了?

我可以使用以下代码播放声音文件

if let buttonBeep = self.setupAudioPlayerWithFile("0897",type:"aiff") {
    self.buttonBeep = buttonBeep
}

buttonBeep?.volume = 1.0
buttonBeep?.play()

func setupAudioPlayerWithFile(file:Nsstring,type:Nsstring) -> AVAudioPlayer?  {
    let path = NSBundle.mainBundle().pathForResource(file as String,ofType: type as String)
    let url = NSURL.fileURLWithPath(path!)
    var audioPlayer:AVAudioPlayer?
    do {
        try audioPlayer = AVAudioPlayer(contentsOfURL: url)
    } catch {
        print("Player not available")
    }

    return audioPlayer
}

但是收到推送通知时没有声音播放.

解决方法

将声音文件拖到Xcode中时,请确保选中“添加到目标”框.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...