Воспроизведение видео в приложении watchOS.
WKInterfaceMovie - Элемент интерфейса, позволяющий воспроизводить видео и аудиоконтент в приложении watchOS.
Работает как положено. Видео играет. Как насчет масштабирования до заполнения экрана ?
- В раскадровке есть визуальная опция. Выбор Resize Aspect Fill игнорируется.
- Для этого есть функция:
func setVideoGravity(_ videoGravity: WKVideoGravity)
Параметр изменения размера для фильма. Для списка
возможных значений, см. тип WKVideoGravity.
import WatchKit
import Foundation
class InterfaceController: WKInterfaceController {
@IBOutlet weak var movieView: WKInterfaceMovie!
override func awake(withContext context: Any?) {
super.awake(withContext: context)
setupVideoPlayer()
}
func setupVideoPlayer() {
guard let videoURL = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4") else {
return
}
movieView.setMovieURL(videoURL)
movieView.setVideoGravity(.resizeAspectFill)
}
}
Базовая настройка в Xcode. Видео загружается при нажатии на кнопку воспроизведения. Играет после загрузки. Не заполняет экран.
WKVideoGravity
Константы, указывающие на внешний вид видеоконтента.
case resizeAspectFill
Содержание изменено, чтобы заполнить границы
прямоугольник полностью, сохраняя при этом исходное соотношение сторон
содержание. Эта опция приводит к обрезке краев видео в
ось, которую он превышает.
Это прекрасно. Давайте попробуем.
Это не работает.
Независимо от videoGravity
(в раскадровке или коде) видео воспроизводится с измененным размером до и заполняет экран только при двойном нажатии.
Чего мне не хватает?
Кроме того, если я исследую метод presentMediaPlayerController
с помощью параметров Media Player, я заметил странное поведение:
• WKMediaPlayerControllerOptionsAutoplayKey
✅
• WKMediaPlayerControllerOptionsStartTimeKey
✅
• WKMediaPlayerControllerOptionsVideoGravityKey
? (Сбой и откат к поведению по умолчанию)
В целом, похоже, что он сломан. Я бы хотел обойти эту проблему, если у кого-то есть идеи.