xcode 8 || AVPlayer 正在显示视频,但没有播放

Posted

技术标签:

【中文标题】xcode 8 || AVPlayer 正在显示视频,但没有播放【英文标题】:xcode 8 || AVPlayer is showing video however it's not playing 【发布时间】:2017-10-24 19:36:32 【问题描述】:

我有这个简单的代码来播放在线视频。在执行 HTTP 权限选项后,它确实开始显示视频,我可以滚动浏览它,但是它在任何时候都不会播放。这是代码。如果有人可以帮助我,我将不胜感激。

问候, 初学者编码器

import UIKit
import AVKit
import AVFoundation

class ViewController: UIViewController 

var playerViewController = AVPlayerViewController()
var playerView = AVPlayer()



override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.



override func viewDidAppear(_ animated: Bool) 
    let movieUrl: NSURL? = NSURL(string: "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4")
    playerView = AVPlayer(url: movieUrl as! URL)
    playerViewController.player = playerView

    self.present(playerViewController, animated: true)
        self.playerViewController.player?.play()
    




【问题讨论】:

检查你的代码格式;似乎您的某些行缺少开头的四个空格。 【参考方案1】:

当我在示例项目中运行您的代码时,调试器会打印:

“应用传输安全已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用的 Info.plist 文件配置临时异常。”

我找到的两个选项是:

1) 在您的 URL 中将方案更改为 https://

2) 调整 Info.plist 中的 App Transport Security 设置

我通过您的代码使用这两个选项成功播放了视频。

【讨论】:

仅适用于 op:如果您想在 appstore 中发布,则 2 不是一个真正的选择【参考方案2】:

原来我唯一做的就是,最后一行有

"self.playerViewController.player?.play()" ----->>> "?"当我把它改成--------->>>“!”

它神奇地开始工作......

我在互联网上看到了一个模因,他们谈论编码人员不知道为什么代码有效以及为什么不知道......我猜我也遇到了同样的情况。

【讨论】:

以上是关于xcode 8 || AVPlayer 正在显示视频,但没有播放的主要内容,如果未能解决你的问题,请参考以下文章

AVPlayer url持续时间Xcode 12 [关闭]

在 AVPlayer 缓冲时设置 UIActivityIndi​​catorView?在目标 c

AVPlayer 无法在 iOS8 上播放 NSDocuments 目录中的视频

带有 AVPlayer 的 AVAudioSession:当 AVPlayer 播放器正在播放时,状态菜单中的“播放”图标不显示

AVPlayer在全屏模式下崩溃

如何在 Mac 的 xcode 中为 AVPlayer 制作音量滑块