У меня есть UIWebView, который воспроизводит видеоклипы в моем контроллере просмотра. Когда я выхожу из приложения, звук перестанет воспроизводиться, хотя я могу нажать воспроизведение в центре управления, чтобы продолжить его снова. Для этого я использую следующий код в своем AppDelegate.swift.
Когда приложение войдет в фоновый режим, я хочу, чтобы звук автоматически включался. Как включить MPMusicPlayerController/AVAudioPlayer (я действительно не уверен, что это такое), чтобы продолжить воспроизведение, чтобы пользователю не пришлось вручную нажимать кнопку воспроизведения?
У меня также есть "Audio and Airplay", отмеченный в разделе "Фоновые режимы" в моих целевых настройках, а "Требуемые фоновые режимы" - "Приложение воспроизводит аудио или передает аудио/видео с помощью AirPlay".
var error: NSError?
var success = AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: &error)
if !success {
NSLog("Failed to set audio session category. Error: \(error)")
}
UPDATE: я создаю пользовательский вид в своем appDel
для размещения видеомикрофона. Вот как я его создаю. CustomWindow
- это настраиваемый класс UIWindow
, где я добавляю мини-плеер в верхнюю часть иерархии представлений. В этом коде я вызываю этот метод перед созданием UIWebView
?
class AppDelegate: UIResponder, UIApplicationDelegate {
let myWind = CustomWindow(frame:UIScreen.mainScreen().bounds)
var window: UIWindow? {
set {
}
get {
return myWind
}
}
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
var error: NSError?
var success = AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: &error)
if success {
AVAudioSession.sharedInstance().setActive(true, error: nil)
UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
} else {
NSLog("Failed to set audio session category. Error: \(error)")
}
myWind.showOrHidePopupWindow()
}