2017-01-06 13 views
0

私のiOSアプリケーションには、簡単なページが1つあります。UIWebViewです。 UIWebViewはYoutubeビデオを読み込むはずです。問題は私がページに行くとき、webviewは正しいビデオプレビューをロードするが、再生ボタンをクリックしても何も起こらないということです。私はこのトピックに関するチュートリアルとYouTube動画の束を見て、それらを見て、私は間違って何かをしているようには見えません。私はplistの生活にいくつかの許可を設定する必要があるかどうか、私はどこにも参照が見つかりませんでしたが疑問に思う。 私のアプリはXcode 7.3、swift 2です。助けてください。ここに私のViewControllerのためのコードは次のとおりです。Swift iOS YouTube埋め込みビデオが再生されない

import UIKit 

class watchVideoVC: UIViewController, UIWebViewDelegate { 



    @IBOutlet weak var myVid: UIWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let myURL = "https://youtube.com/embed/tVjv8I0BlU4" 
     self.myVid.allowsInlineMediaPlayback = true 
     let fbor = "0" 
     let height = myVid.frame.height 
     let width = myVid.frame.width 
     let code:NSString = "<iframe src=\(myURL) width=\(width) height=\(height) frameborder=\(fbor) allowfullscreen></iframe>" 
     self.myVid.loadHTMLString(code as String, baseURL: nil) 
     } 

}

答えて

0

あなたは、実際のユーチューブのビデオページを表示気にしない場合は(自分の動画が埋め込まれていない、私が意味する)、あなただけのユーチューブのURLを読み込むことができますWebViewの中で:それ以外

self.myVid.loadRequest(NSURLRequest(URL: NSURL(string:myUrl)!))

、私はあなたがおそらく必要があります(IFRAMEを描画し、それに応じてアクションを設定するには、小さなJavaScriptを使用している、あなたはYouTubeのIFrameのAPIに試してみるかもしれないと思いますHTML全体を追加するこの例ではwebviewを使って動作させています)。

https://developers.google.com/youtube/iframe_api_reference

あなたが自動にビデオをしたい場合は最後に、あなたはおそらくallowsInlineMediaPlaybackの下に追加される場合があります:

self.myVid.mediaPlaybackRequiresUserAction = false

+0

ありがとうございました。ページに他のアクションやラベルが追加されるため、埋め込みビデオにしたいと思っています。 iframe_apiについて、Swiftにjsを実装する方法はあまりよく分かりません。私はそれについていくつかの研究をする必要があります。 – Tan

0

だから、私は別のフォーラムからの助けを発見し、「ユーチューブに案内されました-ios-player "と表示されます。それに対するgihubのリンクは です。githubのリンクには、Swiftの代わりにObjective Cへの参照が使用されているため、古くなっている指示がいくつかありました。しかし、私はSwift 2で "youtube-ios-player-helper"を使う方法を説明したyoutubeビデオの助けを受けた。ビデオのリンク:https://www.youtube.com/watch?v=WAAZJm6H9Ms 私はCocoaPodsを使用する代わりにファイルを手動でコピーする方法を使用した。それを行う方法の詳細は、上記のYouTubeビデオとgithubのリンクで説明されています。 この「youtube-ios-player-helper」を使用すると、埋め込まれたYouTube動画が完全に読み込まれて再生されます。

0

多くのビデオはサードパーティのアプリケーションに再生することが制限されているため、ビデオが再生されないことがありました。それらの動画はネイティブのYouTubeでのみ再生できます。だから..

あなたのスウィフトファイルに以下のコードを追加してください。ネイティブエラーメッセージが表示されます。

player.delegate = self 
func playerViewDidBecomeReady(_ playerView: YTPlayerView) 
{ 
    playerView.playVideo() 
} 
関連する問題