Внедрих персонализиран филмов плейър с AVPlayer
. При задаване на стойността на videoGravity в AVPlayerLayer
до AVLayerVideoGravityResizeAspectFill
виждам желания ефект в iOS
4.2, 4.3
. Но по някакъв начин на iOS 5.0
няма ефект. Някой вижда ли подобен проблем? Правя ли нещо нередно?
Задаването на videoGravity на AVLayerVideoGravityResizeAspectFill няма ефект върху iOS 5.0
Отговори (2)
В iOS5 трябва да нулирате границите на слоевете след настройка на videoGravity.
Това проработи за мен:
((AVPlayerLayer *)[self layer]).videoGravity = AVLayerVideoGravityResizeAspectFill;
((AVPlayerLayer *)[self layer]).bounds = ((AVPlayerLayer *)[self layer]).bounds;
РЕДАКТИРАНО: „self“ сочи към PlayerView (подклас на UIView) обект от пример „Putting all together“: https://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html
person
miham
schedule
02.02.2012
какво имаш предвид под нулиране? това което правиш е нищо. Двете страни на последния ред са равни. Както се очаква, това няма ефект върху iOS 8.
- person Duck; 08.10.2014
Да, в последния ред на кода, LHS и RHS са еднакви, как се нулират границите?
- person Pradeep Rajkumar; 05.06.2018
Намерих решението на този проблем. Поставете отметка в квадратчето „Clip Subviews“ в IB за изгледа със слоя, към който ще прикачите видеоплейъра. След това задайте AVLayerVideoGravityResizeAspectFill на вашия обект AVPlayerLayer. Ако нямате изгледа в IB, но го създавате програмно, задайте свойството clipsToBounds на YES.
person
carlos_ms
schedule
06.02.2012