ios - AVPlayer 无法将类型的值分配给类型

标签 ios swift3 avplayer avplayeritem

我最近将我的代码升级到 swift 3,但我有 2 个与我的应用程序中的 AVPlayer 相关的错误。

编辑:这里是声明:

public var avPlayer = AVPlayer()
public var avPlayerItem = AVPlayerItem?.self

这是我引用的函数:

func stream() {
    let urlString = streamURLForSong
    let urlItem = URL(string: urlString)
    avPlayerItem = AVPlayerItem(url: urlItem!) // ERROR: Cannot assign value of type 'AVPlayerItem' to type 'AVPlayerItem?.Type?'
    avPlayer = AVPlayer(playerItem: avPlayerItem!) // ERROR: Cannot convert value of type 'AVPlayerItem?.Type' (aka 'Optional<AVPlayerItem>.Type') to expected argument 'AVPlayerItem?'
}

这之前有效,但在使用 Xcode 升级到 Swift 3 后,会显示上面评论的错误。

我该如何解决这个问题?

提前致谢!

最佳答案

这段代码是错误的:

public var avPlayerItem = AVPlayerItem?.self

删除.self。该代码使它成为一个类型,而您想要一个实例 到这里。现在删除 = 并改用 : 来声明类型。

举个更简单的例子,这段代码是非法的:

var x = String?.self
x = "howdy" // compile error

这是需要的:

var x : String?
x = "howdy"

关于ios - AVPlayer 无法将类型的值分配给类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41792168/

相关文章:

ios - 如何从 UIWebView 打印内容?

objective-c - 如何手动中断 AVPlayer 来电

ios - AVPlayer - 播放时切换流质量

ios - 使用 Swift 在 ios 中保存应用程序的状态

iphone - 是否有API调用可为您提供iPhone用户的“我的信息”联系人数据库记录?

objective-c - 如何使用 NSDateFormater 从 NSString 转换为 NSDate

c# - 从电子邮件链接打开 iOS 应用程序

swift - 类型 'Any' 没有下标成员

ios - 路由毒蛇架构

Swift - UISlider 作为视频洗涤器的平滑度问题