Swift 当使用AVFoundation播放声音时,模拟器上有声音,但设备上没有声音
当我试图在计时器应用程序中播放声音时,我在代码中使用了Swift 当使用AVFoundation播放声音时,模拟器上有声音,但设备上没有声音,swift,avfoundation,avaudioplayer,Swift,Avfoundation,Avaudioplayer,当我试图在计时器应用程序中播放声音时,我在代码中使用了AVFoundation。虽然我能在模拟器中听到声音,但在设备中听不到。我想知道我是否需要为应用程序设置一些设置,以便在设备中播放声音 请查找以下代码以了解更多信息 import AVFoundation class timer { var player: AVAudioPlayer = AVAudioPlayer() // in viewdidload let squishPath = NSBundle.mainBun
AVFoundation
。虽然我能在模拟器中听到声音,但在设备中听不到。我想知道我是否需要为应用程序设置一些设置,以便在设备中播放声音
请查找以下代码以了解更多信息
import AVFoundation
class timer {
var player: AVAudioPlayer = AVAudioPlayer()
// in viewdidload
let squishPath = NSBundle.mainBundle().pathForResource("ding", ofType: "wav")
let squishURL = NSURL(fileURLWithPath: squishPath!)
do {
try squishPlayer = AVAudioPlayer(contentsOfURL: squishURL)
squishPlayer.prepareToPlay()
} catch let err as NSError {
print(err.debugDescription)
}
squishPlayer.numberOfLoops = 0
}
我检查了文件名是否正确,它是否在副本中
我发现解决方案是将以下内容添加到app delegate
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let session = AVAudioSession.sharedInstance()
do {
try session.setCategory(AVAudioSessionCategoryPlayback)
try session.setActive(true)
} catch let error as NSError {
print("AVAudioSession configuration error: \(error.localizedDescription)")
}
return true
}
这解决了设备上没有声音的问题,但奇怪的是,即使我没有将这些添加到app delegate,模拟器中仍然有声音。我解决了这个问题。还需要在appdelegate.swift中的DedFinishLaunchWith选项下的delegate将您的解决方案发布为答案并接受它!其他人可能会发现您的解决方案很有用。我添加了该解决方案。可能与