Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 当使用AVFoundation播放声音时,模拟器上有声音,但设备上没有声音_Swift_Avfoundation_Avaudioplayer - Fatal编程技术网

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将您的解决方案发布为答案并接受它!其他人可能会发现您的解决方案很有用。我添加了该解决方案。可能与