extension String {
/*
Below variable will convert youtube ID to embedded Youtube link.
*/
var youtubeVideoURL: String?{
let url = "https://www.youtube.com/embed/\(self)"
return url
}
/*
Here below variable return us Youtube ID from URL String.
e.g. if Youtube link = "https://youtu.be/-zD8M66aAA4" then we'll get YoutubeID = "-zD8M66aAA4"
*/
var youtubeID: String? {
let pattern = "((?<=(v|V)/)|(?<=be/)|(?<=(\\?|\\&)v=)|(?<=embed/)|(?<=shorts/))([\\w-]++)"
let regex = try? NSRegularExpression(pattern: pattern, options: .caseInsensitive)
let range = NSRange(location: 0, length: count)
guard let result = regex?.firstMatch(in: self, range: range) else {
return nil
}
return (self as NSString).substring(with: result.range)
}
}
使用
let ytLink = "https://youtu.be/-zD8M66aAA4"
let videoUrl = ytLink.youtubeID?.youtubeVideoURL
print(videoUrl)
/*
Result:- https://www.youtube.com/embed/-zD8M66aAA4
*/
5条答案
按热度按时间czq61nw11#
如果您不想使用YouTube提供的API,而是继续使用
UIWebView
,则可以使用另一种解决方案。YouTube具有在网页视图中全屏加载任何视频的功能,而无需使用格式为
https://www.youtube.com/embed/<videoId>
的URL的任何滚动功能。例如,要使用此方法加载Gangnam Style,只需将UIWebView指向URL https://www.youtube.com/embed/9bZkp7q19f0。
fwzugrvs2#
YouTube提供的用于在iOS应用程序中嵌入视频的API确实是用Objective-C编写的,但它在Swift中也能很好地工作。
要通过CocoaPods安装库,follow the CocoaPods setup instructions并将以下行添加到您的Podfile:
运行
pod install
后,请确保从现在开始在Xcode中使用.xcworkspace
文件。要导入pod,只需在Swift文件的顶部使用以下import语句:
然后,您可以创建YouTube播放器视图,如下所示:
您可以在布局中包含此视图,就像包含任何其他UIView一样。此外,它还包括YouTube文档中列出的所有功能。例如,要加载和播放视频,请使用以下函数:
其中
videoId
是在视频的URL中找到的字符串id,例如"9bZkp7q19f0"
。hsgswve43#
也有在Github上的应用程序中播放Youtube视频的解决方案。
就像这个:https://github.com/rinov/YoutubeKit
或者这个:https://github.com/gilesvangruisen/Swift-YouTube-Player
只需简单地为您想要使用的项目添加pod,在终端中安装pod,您就可以使用该项目中的功能。
希望这是有帮助的。
wswtfjt74#
在Swift 4.0中播放youtube视频
50few1ms5#
我已经创建了一个扩展来制作
UIWebView
中的Youtube视频。通过使用Adam的解决方案。