【问题标题】:Xcode - Objective C - AVPlayer programmatically - play local video, with standard/system skin [closed]Xcode - Objective C - AVPlayer 以编程方式播放 - 使用标准/系统皮肤播放本地视频[关闭]
【发布时间】:2016-03-01 12:05:46
【问题描述】:

谁能帮我设置和播放本地视频文件的代码,在 Xcode 中使用 AVPlayer? (使用 AVPlayerLayer 和 AVPlayerViewController) 全部以编程方式完成并使用标准/系统视频皮肤?

问候亨宁

【问题讨论】:

    标签: ios objective-c avplayer avplayerlayer


    【解决方案1】:
    AVPlayer *player = [AVPlayer playerWithURL:"YOUR URL"];
    
    // create a player view controller
    AVPlayerViewController *controller = [[AVPlayerViewController alloc] init];
    [self presentViewController:controller animated:YES completion:nil];
    controller.player = player;
    [player play];
    

    希望对你有所帮助.....

    【讨论】:

    • 谢谢!现在我可以听到视频了;)(我没看到)收到这条消息:警告:尝试在 上呈现 ,其视图不在窗口层次结构中!如何将控制器附加到 UIView?
    • 您是在“viewDidLoad”中编写此代码吗?因此,您收到此消息只需将此代码移动到“viewDidAppear”中,这可能对您有用
    • 对不起,我对 Objective C 很陌生。你是对的,如果我将代码移动到 viewDidAppear,错误就会消失,但是没有视频正在播放
    • 请添加您的代码...
    【解决方案2】:
    // remote file from server:
    NSURL *url = [[NSURL alloc] initWithString:@"https://s3-eu-west-1.amazonaws.com/alf-proeysen/Bakvendtland-MASTER.mp4"];
    
    // create a player view controller
    player = [AVPlayer playerWithURL:url];
    AVPlayerViewController *controller = [[AVPlayerViewController alloc] init];
    
    [self addChildViewController:controller];
    [self.view addSubview:controller.view];
    
    controller.view.frame = CGRectMake(50,50,500,300);
    controller.player = player;
    controller.showsPlaybackControls = YES;
    player.closedCaptionDisplayEnabled = NO;
    [player pause];
    [player play];
    

    这一切都在viewDidLoad 中完成,现在工作正常。我做了一个子视图来展示播放器。

    现在唯一不起作用的是player.closedCaptionDisplayEnabled = NO;,它被忽略了。该视频嵌入了软字幕,我可以使用显示的 cc 按钮切换字幕。但我无法以编程方式切换/控制它?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2015-10-28
    • 2016-10-30
    • 2016-07-11
    相关资源
    最近更新 更多