Avplayer不能从URL播放视频

3

当我尝试从url播放视频时,AVPlayer无法播放视频。但是当我尝试下载并播放视频时,它可以播放。我做错了什么?

self.avAsset = AVAsset(URL: NSURL(string: contentURLString)!)
 let item = AVPlayerItem(asset: avAsset)
            avPlayer = AVPlayer(playerItem: item)
            playerLayer = AVPlayerLayer(player: avPlayer)
            playerLayer.frame = self.view.frame
            playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
            cell.videoView.layer.addSublayer(playerLayer)
            self.avPlayer.seekToTime(kCMTimeZero)
            avPlayer.play()

1
AVPlayer无法播放视频?只是不播放吗?还是有错误信息?有什么症状? - Eric Aya
只是不播放视频。 - Murat Kaya
屏幕是黑色的吗? - Harris
2
在播放远程文件时,您应该使用KVO来获取有关播放器状态更改的通知。然后,您应该能够判断播放是否失败。 - Xcoder
请参考此问题以了解Xcoder所说的内容:https://dev59.com/-m035IYBdhLWcg3weP3f - naomimichiko
实际上我使用了KVO来获取通知。这解决了我的一半问题。但当互联网真的很慢时,我尝试在任何情况下播放视频。那么你对我有什么建议? - Murat Kaya
4个回答

4

AVplayer只有在服务器支持Http Range参数时才能播放远程url视频。否则将显示空白黑屏。


0

我遇到了同样的症状,我尝试从URL播放一个示例视频。

然而,我得到了一个空的播放器视图,但视频没有播放。 在设备上测试时没有错误消息,但在模拟器上测试时,我收到了以下消息:

由于应用程序传输安全策略要求使用安全连接,因此无法加载资源。

所以问题基本上是HTTP协议

解决方案A:使用带有https的视频源。

解决方案B:更改您信息文件中的应用程序传输安全策略(如本主题所述)


0

Objective-C答案的Swift 3.0翻译

    let videoURL: URL = URL(string: contentURLString)!

    let playerViewController = AVPlayerViewController()
    self.playerController = playerViewController
    self.playerController.player = AVPlayer(url: videoURL)
    self.present(self.playerController, animated: true) { 
        self.playerController.player?.play()
    }

-1

如果要使用AVPlayer播放远程文件,请创建一个示例项目,并在ViewController的viewDidLoad()方法中添加以下行。

NSURL *videoURL = [NSURL URLWithString:contentURLString];

//Use AVPlayerViewController to use default Apple Controls
AVPlayerViewController *playerViewController = [AVPlayerViewController new];
self.playerController = playerViewController;
self.playerController.player = [AVPlayer playerWithURL:videoURL];
[self presentViewController:self.playerController animated:YES completion:^{
     //Start Playback
     [self.playerController.player play];
}];

问题标记为“swift”,而不是“objective-c”。请用Swift示例替换您的Objective-C示例。 - Eric Aya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接