Вопрос по avplayer, avplayerlayer, iphone, objective-c, ios – AVPlayer Видео Пусто, но слышит звук

15

м переключается сMPMoviePlayerController вAVPlayer так как мне нужен более точный контроль обмена видео..mov файл, с которым я игралMPMoviePlayerController играл нормально, но после перехода наAVPlayer Я слышу звук из видео, но видео только показывает фон просмотра, который я добавилAVPlayerLayer к. Вот'как яЯ инициализирую.AVPlayer

self.player = [[AVPlayer alloc] initWithURL:video];

AVPlayerLayer* playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
playerLayer.frame = self.playerContainer.bounds;
[self.playerContainer.layer addSublayer:playerLayer];

Потом позже я просто выдаю.

[self.player play];

Когда воспроизводится видео, я слышу звук, но не вижу видео. Я также попытался установить zPosition безуспешно.

playerLayer.zPosition = 1;

Ваш Ответ

3   ответа
0

Убедитесь, что вы заявление, которое воспроизводит видео:

[self.player play]

вызывается из основной очереди отправки следующим образом (Swift 3):

DispatchQueue.main.async {
    self.player.play()
}
Извини, что не сделалвыручить меня Zaid Pathan
1

Поскольку мы используем AVPlayerLayer (подкласс CALayer), нам нужно установить кадр

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];

    self.avPlayerLayer.frame = self.movieContainerView.bounds;
}
7

Выяснил, что это было результатом использованияAutoLayout, вviewDidLoad self.playerContainer.bounds это .CGRectZero

Я должен был назначить кадр playerLayer вviewDidAppear соответствовать playerContainer.

Для меня видео было CGRectZero и не видно. На самом деле играла, просто на экране 0.0x0.0. Gary Rudolph
@Gary У меня точно такая же проблема, но с проектом MacOS - я слышу звук, но нет видео, только черное окно - вот мой общий код:let fileURL = URL(string: "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4") let avAsset = AVURLAsset(url: fileURL!, options: nil) let playerItem = AVPlayerItem(asset: avAsset) videoPlayer = AVPlayer(playerItem: playerItem) let playerView = self.playerView playerView?.player = videoPlayer videoPlayer.play()   Любая идея, что мне нужно добавить к этому, чтобы видео показать? Neal Davis
Я нене использовать autolayout, но имеют ту же проблему.stackoverflow.com/questions/16872193/... Как ты мог решить это? Burak

Похожие вопросы