我正在使用xcode 7.1,swift创建一个应用程序.我想播放音频.一切都好.现在我的问题我想听到设备处于静音模式或静音时的声音.我该怎么做?
我使用以下代码播放音频
currentAudio!.stop()
currentAudio = try? AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("sample_audio", ofType: "mp3")!));
currentAudio!.currentTime = 0
currentAudio!.play();
Run Code Online (Sandbox Code Playgroud)
rus*_*ani 71
在调用AVPlayer的play()方法之前放这一行.
在目标C中
[[AVAudioSession sharedInstance]
setCategory: AVAudioSessionCategoryPlayback
error: nil];
Run Code Online (Sandbox Code Playgroud)
在斯威夫特
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
}
catch {
// report for an error
}
Run Code Online (Sandbox Code Playgroud)
max*_*ell 15
你可以使用AppDelegate类。
要在设备处于静音模式时启用声音(用于音频或视频),请使用AVAudioSessionCategoryPlayback:
func applicationDidBecomeActive(_ application: UIApplication) {
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
} catch {
print("AVAudioSessionCategoryPlayback not work")
}
}
Run Code Online (Sandbox Code Playgroud)
要在设备处于静音模式时禁用声音(例如当我们接听电话时),请使用AVAudioSessionCategorySoloAmbient:
func applicationWillResignActive(_ application: UIApplication) {
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategorySoloAmbient)
} catch {
print("AVAudioSessionCategorySoloAmbient not work")
}
}
Run Code Online (Sandbox Code Playgroud)
Swift 3.0和Xcode> 8
当设备处于RINGER模式和SLIENT模式时,在视频中播放声音
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
//print("AVAudioSession Category Playback OK")
do {
try AVAudioSession.sharedInstance().setActive(true)
//print("AVAudioSession is Active")
} catch _ as NSError {
//print(error.localizedDescription)
}
} catch _ as NSError {
//print(error.localizedDescription)
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特 4.2
do {
try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [])
} catch let error {
print("Error in AVAudio Session\(error.localizedDescription)")
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特 4
在播放视频之前使用此行
try? AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17712 次 |
| 最近记录: |