Friday, 11 December 2015

SWIFT: Play youtube video in WebView

Play youtube video in WebView



First Drag this "Assets" folder in to your project 

check "Copy items if need"
check "Create folder reference"


The "Assets" folder must be in blue color
https://drive.google.com/drive/u/0/folders/0B9iu5I479ob8RlAwVFRsWVFXV1E


In bridge-header.h page  write this

#import "YTPlayerView.h"


class videoViewController: ViewController{

 var playerView: YTPlayerView = YTPlayerView()

 override func viewDidLoad() {
        super.viewDidLoad()
    playerView.frame = CGRectMake(15, 20, self.view.frame.width - 30, 200)
        self.view.addSubview(playerView)

        let embedId = self.extractYoutubeIdFromLink("https:\/\/www.youtube.com\/watch?v=1HPcUBySv6c")
        self.playerView.layer.borderWidth = 3
        self.playerView.layer.borderColor = UIColor.lightGrayColor().CGColor
        self.playerView.loadWithVideoId(embedId)
}

    func extractYoutubeIdFromLink(link: NSString) ->String{
        let regexString = "((?<=(v|V)/)|(?<=be/)|(?<=(\\?|\\&)v=)|(?<=embed/))([\\w-]++)"
        do {
            let regex = try NSRegularExpression(pattern: regexString, options: NSRegularExpressionOptions.CaseInsensitive)
            var array = NSArray()
            array = regex.matchesInString(link as String, options: NSMatchingOptions(rawValue: 0), range: NSMakeRange(0,link.length))
            if (array.count > 0) {                
                let result = array.firstObject;                
                let embedId = link.substringWithRange(result!.range)                
                return embedId                
            }           
            
        } catch{
            let k:String? = nil
            return k!
        }
        let k:String? = nil
        return k!
    }
}







No comments:

Setting Up Multiple App Targets in Xcode from a Single Codebase

 To create two different apps (like "Light" and "Regular") from the same codebase in Xcode, you can follow these steps b...