• ベストアンサー

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」の用に、プレイヤーへ引き渡してもフルスクリーンにしない方法がわかればなんとかなんとかなりそうなのですが・・・。 引き続き情報をよろしくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • [Objective-C]キーボード表示切り替え

    Objective-CでiPadアプリケーションを作成しています。 添付画像のように、 「キーボード入力」と「タグ入力」を切り替えることができるような 仕組みをつくりたいと思っています。 (添付ははてなブックマークアプリのタグ付け画面です) どのように実装方法を考えれば、この操作性が実現できるのかわからずにいます。 ソフトウェアキーボードは常時表示させておいて、 その上にタグ用のUIViewをかぶせることができるのか? (試しに実装してみるとソフトウェアキーボードの上にUIViewは被せられませんでした) もしくは、ソフトウェアキーボードを非表示にして、 その位置にタグ用UIViewを表示させるのか? (テキストエリアをタップするとキーボードが再表示されてしまう問題あり) アイディア、コードサンプルなど、 アドバイス頂ければ幸いです。 どうぞよろしくお願いいたします。

  • youtubeのスキンについて

    こんばんわぁ。詳しい方教えて下さい! アメブロをやってます。 slide skinflix というサイトを見つけたので、 youtubeの動画にスキンをつけた状態で公開したいのですが、 コード をコピペしてもエラーがかかって公開できません。 ちなみにOSはvistaです。 ぜひこのスキンを使って公開してみたいと思うので ぜひぜひ 良い方法を教えて下さい。 また 別の方法もあるようでしたら合わせてやさしく ご指導ください。 どうぞよろしくお願いします。

  • C#で携帯アプリ開発

    Xamarinを使用するとC#で開発できることを知りました。 まだ、やりたいことができるか模索している段階なので、仕組みが全く分からないため、以下2点を質問します。 1つ目 IOSとAndoroidではUIが違うため、使うコンポーネント?フレームワーク?が違うみたいですが、実装部分は全く同じコードで作ることができますか? 2つ目 IOSもAndoroidも.netFrameWorkはないですが、FrameWorkや.net用に作られたdllを使用して作成できるものでしょうか? 使用できる場合、コンパイル時に機械語に近い形でコンパイルされるのでしょうか? IOSはObjective-Cやswift、Andoroidはjavaのイメージがありますが、コンパイルされるとそのコードに変換されるのでしょうか? モバイルアプリに関して全く知識がないため、ご存知の方いましたら教えてください。

  • youtubeのスキンについて

    詳しい方教えてください。 アメブロをやってます。 slide skinflixというサイトを見つけたので youtubeの動画にスキンをつけた状態で自分のブログに 公開したいのですが、 コード をコピペしてもエラーがかかり公開出来ないんです。 ちなみにOSはVISTAです。 どうかよい方法を教えて下さい。 よろしくお願いします。

  • 円形ボリュームのUIの実装方法

    言語は寧ろなんでも良い(Dalvik javaで実装予定)のですが、音楽再生アプリケーションで、 シークバーではなく、円形のボリュームを実装しようと考えています。 ボリュームの画像を用意したのですが、 UIをドラッグした時の、回転の計算方法が思いつきません。 ドラッグイベントはx,yでAPIより受け取り、移動時のx,yの差をとるとして、 直線の動きなら、単にXまたはYを引くだけで計算できると思いますが、 X,Yの差を回転角度に計算する場合、どの様に計算すれば、それっぽくなるのでしょうか? 三平方を使うのでしょうか?

  • youtubeのアドレス指定の方法、スマホ

    youtubeは特定の動画を見るためのアドレスが用意されていますが パソコンで見る場合はブラウザのURLバーにそのままペーストでアクセスできますが iphoneやスマホでyoutube公式アプリでURL指定(動画ID指定)で見る方法を教えてください 限定公開の動画を知り合いに見せる場合は、LINE等でURLを貼り付けクリックして見てもらっているのですが、iphoneの場合その方法を取るとブラウザ(サファリ)で起動してしまうようでyoutube公式アプリで見れないとクレームが来ます 特に360度画像などは公式アプリでないとうまく見れない様で.. 検索しても公式アプリで見ている動画のURLの調べ方ばかりヒットしてしまいます(泣) youtube公式アプリで動画をurl指定してみる方法を教えてください 当方はandroidユーザーですが、androidでもやり方が分かりません iphone、android両方の方法が知りたいです、が、片方でも分かれば教えてください よろしくお願いします

  • 他のアプリを立ち上げてyoutubeを聴きたい

    最近、新しいPCを購入し、ウィンドウズ8.1を利用するようになりました。 以前、日常的にやっていたブラウザ(私はchrome)を立ち上げてyoutubeにアクセスし、音楽を聴きながら 他のアプリケーションの作業をする、ということが出来ません。 ウィンドウズ8.1ではアプリを複数立ち上げると利用しているアプリしかアクティブにならないのでしょうか? ウィンドウズ8.1でyoutubeを聴きながら他のアプリを利用する方法を教えてください。 よろしくお願いします

  • [objective-C]配列について

    はじめまして。 objective-C、cocos2dについての質問です。 iPhoneアプリを勉強しながら作り始めたのですが詰まってしまい、できればご助力をお願いしたいと思い質問させていただきました。 cocos2dというフレームワークを使用し簡単なRPGを作りたいと考えております。 そこでキャラクターのステータスを配列に格納し、どのシーンからも参照したいのですが、どうしてもうまくいきません。 別クラスでインスタンス変数を作り、それを利用して配列を作成する方法で実装しようとしており、実際のコードは以下の通りになります。 ---------------------------------- <Character.h> @interface Character : NSObject{ NSInteger characterStateAtk_; ・(Def、Hpなど) ・ } @property (nonatomic, assign) NSInteger characterStateAtk;  ・  ・ @end <Character.m> #import "Character.h" @implementation Character @synthesize characterStateAtk = characterStateAtk_;  ・  ・ @end キャラクターステータス生成部分 <CreateScene.h> @interface CreateScene : CCScene { NSMutableArray* characterStateArray_; } @property (nonatomic, assign) NSMutableArray *characterStateArray; @end <CreateScene.m> @interface CreateScene() - (void) pressReloadButton:(id)sender; - (void) createCharacterState; @end @implementation CreateScene @synthesize characterStateArray = characterStateArray_; - (void) dealloc{ [self.characterStateArray release]; [super dealloc]; } - (void) createCharacterState{ self.characterStateArray = [NSMutableArray array]; Character* priState = [[[Character alloc]init] autorelease]; priState.characterStateAtk = random() % 5 + 5; ・ ・ [self.characterStateArray addObject:priState]; } (その他の処理) - (void) pressReloadButton:(id)sender{ [self createCharacterState];  (ここでcharacterStateArrayを取得して表示したい) } ---------------------------------- 最初は、 NSInteger x; x = [[self.characterStateArray objectAtIndex:0]intValue]; で取得しようとしたのですがエラーとなり実行できませんでした。 (調べていくうちにobjective-Cでは配列の中身はオブジェクトしか使えないという事を知りました) プログラム中の(ここでcharacterStateArrayを取得して表示したい)の部分について、実装方法や考え方についてご助言をいただけないでしょうか? よろしくお願いいたします。

  • C#で作成したプログラムのAPIリファレンスを作成したい

    はじめまして。 現在OSがWindows Vistaで、IDEがVisual Studio 2005 Express Edition を利用して、C#でアプリケーションを作成していまして、 コードにXMLコメントを挿入しています。それで、そのXMLコメント を利用してAPIリファレンスみたいなものを作りたいのですが どなたかよいツールをご存じないでしょうか。アドバイスお願いします。

  • 独自アプリのAPI公開方法について

    Visutal C++ 2008(MFC)を用いてソフトウェアを開発しています。 現在開発しているソフトウェアは、ネットワーク通信系のものであり、 EXE側で通信機能を実装し、DLLをプラグインという形でロードしています。 そこで、DLL側でもEXE側に実装した通信系の関数(SendやRecvなど)を 呼び出したい(EXEからAPIを公開?)と考えているのですが、 どう実装したらいいのか分かりません。 今のところは、API公開用のDLLを用意し、EXEとDLLから両方ともにロード をさせようかと思っていますが、他に良い方法は無いでしょうか? 宜しくお願いします。