【问题标题】:video with transparent background not playing in IOS using AVPlayer使用 AVPlayer 在 IOS 中不播放具有透明背景的视频
【发布时间】:2017-11-08 19:49:08
【问题描述】:

我有一个带有透明背景的“.mov”视频,可以在我的视图上添加效果,但是当我尝试播放它时,视频会加载 n 次播放,但我得到一个空白屏幕,这是我的代码:

@property (nonatomic) AVPlayer *avPlayer;
@property (nonatomic) AVPlayerViewController* avPlayerView;

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSBundle* bundle = [NSBundle mainBundle];
NSString* path = [bundle pathForResource:@"Spit" ofType:@"mov"];
NSURL *fileURL = [NSURL fileURLWithPath:path];

AVAsset *asset = [AVURLAsset URLAssetWithURL:fileURL options:nil];
AVPlayerItem *anItem = [AVPlayerItem playerItemWithAsset:asset];

_avPlayer = [AVPlayer playerWithPlayerItem:anItem];
[AVPlayer addObserver:self forKeyPath:@"status" options:0 context:nil];
_avPlayerView = [[AVPlayerViewController alloc] init];
_avPlayerView.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
_avPlayerView.player = _avPlayer;

[_avPlayerView view].backgroundColor = [UIColor clearColor];
[_avPlayerView view].alpha = 0.5;//or any value you think is right

    [self.view addSubview:_avPlayerView.view]; 
}

如果有人有想法,任何帮助将不胜感激,在此先感谢。

【问题讨论】:

    标签: ios objective-c avplayer


    【解决方案1】:

    尝试将您的“avPlayerView”添加为子视图控制器:

    [self addChildViewController:_avPlayerView];
    [self.view addSubview:_avPlayerView.view];
    [_avPlayerView didMoveToParentViewController:self];
    

    如果您需要它全屏,那么最好将 AVPlayerViewController 添加为呈现的视图控制器。而不是添加为子视图,您只需呈现它:

    [self presentViewController:_ avPlayerView animated:NO completion:nil];
    

    【讨论】:

    • @user3411226 已编辑。也许你有一些损坏的视频?
    • 当我在应用程序外播放视频时效果很好,所以我认为这不是问题......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2017-02-23
    • 1970-01-01
    • 2015-10-16
    • 2015-07-26
    相关资源
    最近更新 更多