- ベストアンサー
iPhoneアプリでyoutubeの連続再生をする
いつもお世話になります。 iPhoneアプリでyoutubeの連続再生をする方法を探しているのですが 見つけられずに困っております。 下記URL(Method 2: Embed the YouTube player in a UIWebViewの方) http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html を参考に、1つの動画の再生は出来るようになりました。 これを複数の動画を連続で再生させる方法をご存知の方 どなたかご教授頂けませんでしょうか。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
返信が遅くなっちゃってすみません。 私が最初に提示した方法はSWF埋め込みが前提っぽくて、iphoneでは正しく動作しないみたいですね。 幸い今年になってからiFrame経由で問題が回避できるようになったようです。 参考: http://googledevjp.blogspot.com/2011/01/iframe-youtube-player-javascript-player.html ここのサイトを参考に、以下のように埋め込むHTMLを作ったところ、うまく動作しました。 以下の例ではID=x240jgXnHfsの動画(15秒)が再生された後にID=dXD-KzMzcQIの動画(60秒)が再生されます。 あとはonPlayerStateChangeハンドラをうまく作り込んでやれば、複数動画の連続再生が可能だと思います。 僕も勉強になりました。 僕もコレでなにかアプリ書いてみますね。 NSString *htmlString = @"<!DOCTYPE HTML>\ <html>\ <body> \ <div id='player'></div>\ <script> \ var tag = document.createElement('script'); \ tag.src = 'http://www.youtube.com/player_api'; \ var firstScriptTag = document.getElementsByTagName('script')[0]; \ firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); \ var done = false; \ var player;\ function onYouTubePlayerAPIReady() { \ player = new YT.Player('player', {\ height: '390',\ width: '640', \ videoId: 'x240jgXnHfs', \ events: { \ 'onReady': onPlayerReady, \ 'onStateChange': onPlayerStateChange \ } \ });\ }\ function onPlayerReady(evt) {\ }\ function onPlayerStateChange(evt) { \ if(evt.data == YT.PlayerState.ENDED){\ player.loadVideoById('dXD-KzMzcQI');\ }\ }\ function stopVideo() {\ player.stopVideo();\ }\ </script>\ </body> \ </html>"; # ちなみに、最初の動画がうまく自動再生できなかったんですよねぇ…。上記サンプルは # 最初に指でタップすると始まります。 # ご質問自体には回答できていると思いますので、1つ目の自動再生については研究してみてください。
その他の回答 (1)
- jjk65536
- ベストアンサー率59% (66/111)
そこまでできているのでしたら、そのHTMLにJavascriptを追加して、 Javascriptで終了検出と次の動画再生を行えばいいんじゃないでしょうか? 具体的には、このへんが参考になりそうです。 http://d.hatena.ne.jp/koba04/20110227/1298736386 未確認ですが、面白そうなのでもしu_713さんが動かなかったら 僕もやってみます。
補足
返信が遅くなって申し訳ありません。 ご回答ありがとうございました。 参考に頂いたサイトは、私も試してみていました。 普通にWEB上でHTMLでは確かに再生は出来ているのですが UIWebViewでその再生出来ているページを表示させても、動画自体が再生されませんでした。 (動画エリア自体表示されない。swfobjectを使っているからFLASHは表示されないから(?)) また、<object>タグで動画を表示させて javascriptで制御出来ないかと試してみたのですが onYouTubePlayerReady も動きませんでした。 また、下記のサイトを参考にして動画を再生させようとしたのですが、それもダメでした。 http://tsuyobi.heteml.jp/movie/youtube_control/ 大変お手数ではございますが、ご一緒に考えて頂けると助かります。 宜しくお願い致します。
お礼
なるほど! iFrame経由で解決出来るとは。 自動再生の方は、私の方でも調べてみます。 ご教授頂き、大変助かりました。 ありがとうございました。