Как сделать зеркалирование экрана с помощью AirPlay из приложения (а не с панели управления) в iOS?
Я использую MPVolumeView
, чтобы показать кнопку AirPlay
. Мне нужно показать пользовательские обои для Apple
TV
путем зеркалирования аудио. Звук воспроизводится правильно на Apple
TV
, но изображение обоев не отображается. Я использую AVAudioController
для воспроизведения звука. Я проверил приложение YouTube
, в котором работает зеркальное отображение экрана из приложения для воспроизведения видео. Можно ли отображать зеркалирование в приложении с помощью AVAudioController
?
Помогите мне решить эту проблему. Спасибо заранее.
Ответы
Ответ 1
К сожалению, внешний экран, связанный с AirPlay, станет активным (и опубликует соответствующее уведомление), когда вы включите зеркалирование AirPlay на панели управления. Кажется, что не позволяет программному обеспечению зеркалирования.
MPVolumeView может помочь пользователю перенаправить звук на колонки AirPlay, это не имеет никакого отношения к зеркалированию дисплея.
Ответ 2
Документацию можно найти здесь: https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/WindowAndScreenGuide/UsingExternalDisplay/UsingExternalDisplay.html
В основном это о создании второго UIWindow
, если имеется внешний дисплей. Я предполагаю, что вы можете показать свои обои, которые являются изображением. Должно быть просто установить это через UIImageView
во второй UIWindow
.
Ответ 3
Вы можете отображать зеркалирование в приложении с помощью свойства AVPlayer.
Это свойство
@property (nonatomic) BOOL usesAirPlayVideoWhileAirPlayScreenIsActive NS_DEPRECATED_IOS(5_0, 6_0);
или
@property (nonatomic) BOOL usesExternalPlaybackWhileExternalScreenIsActive NS_AVAILABLE_IOS(6_0);.
Значение по умолчанию usesAirPlayVideoWhileAirPlayScreenIsActive
и usesExternalPlaybackWhileExternalScreenIsActive
равно NO.
usesAirPlayVideoWhileAirPlayScreenIsActive
не действует, если allowsAirPlayVideo
равно NO.
И usesExternalPlaybackWhileExternalScreenIsActive
не работает, если allowsExternalPlayback
НЕТ.
Ответ 4
Вам необходимо будет прослушать уведомления о подключении/отключении экрана:
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(handleScreenDidConnectNotification:)
name:UIScreenDidConnectNotification object:nil];
[center addObserver:self selector:@selector(handleScreenDidDisconnectNotification:)
name:UIScreenDidDisconnectNotification object:nil];
В имени: UIScreenDidConnectNotification вы увидите, что на вашем устройстве теперь есть 2 экрана, и вы можете выполнить свою настройку.