To play Youtube Video in iOS app

泪湿孤枕 提交于 2019-12-20 20:01:11

问题


I want to play youtube videos in my iOS App. I searched for that but the only solution I found is to embed youtube videos in the iOS app, in which video plays in webview, so in that, we can scroll and also play other videos which are in suggestion. I don't want to play video in webview, I want to play video just like it plays in player and user cannot scroll it. Is there any solution for that in Swift and also I don't want to use libraries which are against terms and condition of Youtube


回答1:


Here's another solution if you don't want to use the API provided by YouTube and instead continue using a UIWebView.

YouTube has functionality to load any video in fullscreen in a webview without any of the scrolling features using a URL in the format https://www.youtube.com/embed/<videoId>.

For example, to load Gangnam Style using this method, simply direct the UIWebView to the URL https://www.youtube.com/embed/9bZkp7q19f0.




回答2:


The API that YouTube provides to embed videos in iOS apps is indeed written in Objective-C, but it works just as well in Swift.

To install the library via CocoaPods, follow the CocoaPods setup instructions and add the following line to your Podfile:

pod ‘youtube-ios-player-helper’, ‘~> 0.1’

Once you have run pod install, be sure to use the .xcworkspace file from now on in Xcode.

To import the pod, simply use the following import statement at the top of your Swift files:

import youtube_ios_player_helper

You can then create youtube player views as follows:

let playerView = YTPlayerView()

You can include this view in your layouts as you would any other UIView. In addition, it includes all of the functions listed in the YouTube documentation. For instance, to load and play a video, use the following function:

playerView.load(withVideoId: videoId);

Where videoId is the string id found in the URL of the video, such as "9bZkp7q19f0".




回答3:


Play youtube video in Swift 4.0

if let range = strUrl.range(of: "=") {
        let strIdentifier = strUrl.substring(from: range.upperBound)        
        let playerViewController = AVPlayerViewController()
        self.present(playerViewController, animated: true, completion: nil)
        XCDYouTubeClient.default().getVideoWithIdentifier(strIdentifier) { 

            [weak playerViewController] (video: XCDYouTubeVideo?, error: Error?) in
            if let streamURLs = video?.streamURLs, let streamURL = 
                (streamURLs[XCDYouTubeVideoQualityHTTPLiveStreaming] ?? 
                streamURLs[YouTubeVideoQuality.hd720] ?? 
                streamURLs[YouTubeVideoQuality.medium360] ?? 
                streamURLs[YouTubeVideoQuality.small240]) {
                    playerViewController?.player = AVPlayer(url: streamURL)
                } else {
                    self.dismiss(animated: true, completion: nil)
                }
        }
}



回答4:


There also are solutions for playing Youtube Videos in an app on Github.

Like this one: https://github.com/rinov/YoutubeKit

Or this one: https://github.com/gilesvangruisen/Swift-YouTube-Player

Just simply add the pod for the project that you want to use, install the pod in terminal, and you can use the functionality in that project.

Hope that this is helpful.



来源:https://stackoverflow.com/questions/44499332/to-play-youtube-video-in-ios-app

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!