• ベストアンサー

Objective-C Youtube 埋め込み

iOSのアプリケーション内に、Youtubeを埋め込む方法を探しております。 添付画像のように、プレイヤを使わずUIに埋め込みたいのですが可能でしょうか? Youtubeさんの、公式アプリでは利用しているので何らかの方法で実装は可能だとは思うのですが、方法がわかりません。 Youtube の API も検索してみましたが、発見できませんでした。 (一般に公開されていない、コードなどを利用しているという可能性も考えられますが) 参考になるサイト・書籍等ございましたら、ご教授頂けますと光栄です。 以上、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

No.1です。 ちょっと調べてみました。 まず、AVFoundationに引き渡してMPMoviePlayerControllerとかで処理するのは、 http://stackoverflow.com/questions/1779511/play-youtube-videos-with-mpmovieplayercontroller-instead-of-uiwebview で議論されている通り、無理っぽいです。 公開されているURLから直接の動画ファイルURLを得るのが難しいし、 それをするのはYouTubeもやめて欲しそうです。 で、UIWebViewを使ってフルスクリーンにしない方法ですが、 http://d.hatena.ne.jp/glpgsinc/20121211/1355208138 にある通り、allowsInlineMediaPlaybackをYESにして、 videoタグにwebkit-playsinlineをつければよいようです。 しかし、videoタグを使うなら、直接の動画ファイルURLを指定する 必要があるので、このままでは無理っぽいです。 で、allowsInlineMediaPlayback=YESでYouTubeの再生をする 方法を探したところ、 http://stackoverflow.com/questions/6710461/can-i-play-a-youtube-video-in-a-uiwebview-inline-not-fullscreen に答えがありました。 allowsInlineMediaPlaybackをYESにした上で、playsinline=1を 付与したURLを開くだけでよいようです。 おそらくplaysinline=1を付与することで、最終的に実行されるvideoタグに webkit-playsinlineパラメータが付与されるのだと思います。 実際にやってみたら、うまくインラインで再生されました。

RYO-88
質問者

お礼

ご回答ありがとうございます。 allowsInlineMediaPlayback=YESでYouTubeの再生をする方法で、 作成中のアプリに組み込んだところ、 理想の状態で再生されました。 動作確認までして頂き、本当にありがとうございました。

その他の回答 (1)

回答No.1

やったことはないですが、UIWebViewのweb表示機能を使えばよいと思います。 (参考) http://qiita.com/JunSuzukiJapan@github/items/4f572fadb4172ab6f6b1

RYO-88
質問者

お礼

情報ありがとうございます。 web表示を利用する方法では、サムネイルまでUIWebViewないで処理されるのですが、再生時にPlayerに持っていかれてしまいました。 AVFoundationへ引き渡す動きをオーバーライドできれば実装できそうなので情報を探しておりますがなかなか有力な情報が見つかりません。 「McTube」「MusicTubee」「CommeTube」の用に、プレイヤーへ引き渡してもフルスクリーンにしない方法がわかればなんとかなんとかなりそうなのですが・・・。 引き続き情報をよろしくお願い致します。