1. ホーム
  2. ios

[解決済み] UIWebViewの代わりにMPMoviePlayerControllerでYouTube動画を再生する。

2023-04-27 17:52:06

質問

MPMoviePlayerControllerを使ってYouTubeの動画をストリーミング再生しようとしているのですが、いくつか問題があります。 私が使用しているコードは非常にシンプルで、initWithContentURL に URL を渡すことによって .m4v ビデオを再生できます。 ムービー・プレーヤーを起動すると、プレーヤーは表示されるのですが、20秒ほどで消えてしまいます。 シミュレータで試すと、サーバーが正しく設定されていないというアラートビューが表示されます。 Google から特定の種類の動画フィードを取得するために URL と共に渡す必要がある引数はありますか?

NSURL *videoURL = [NSURL URLWithString:@"http://www.youtube.com/v/HGd9qAfpZio&hl=en_US&fs=1&"];
MPMoviePlayerController *moviePlayer;
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];

[moviePlayer play];

また、以下のURLも試してみました。 http://www.youtube.com/watch?v=HGd9qAfpZio

私はまた、引数 &format=1 を見て、それを両方の文字列の末尾に追加しようとしましたが、うまくいきませんでした。

どのように解決するのですか?

自分のアプリ内でyoutubeの動画を再生させるためには UIWebView を作成し、再生したい動画のYoutubeの埋め込みタグを UIWebView's のコンテンツとして使用します。 UIWebView は、埋め込みオブジェクトが Youtube のリンクであることを検出し、ウェブビューのコンテンツが動画の youtube プレビューになります。ユーザーがプレビューをクリックすると、MPMoviePlayerControllerに動画が表示されます。これは、Muxecoid が提供しているリンク先で説明されている手法です ( アプリケーションでYoutubeの動画を再生する方法 で説明されている手法で、これが(私が知る限り)アプリケーション内でYoutubeの動画を再生させる唯一の方法です。なお、Youtube の URL を -[UIApplication openURL:] に渡すことで、Youtube アプリケーションを起動させることもできますが、もちろんこれは望ましくないことが多く、アプリケーションを終了させます。

残念ながら、Youtubeのビデオを直接再生する方法はありません。 MPMoviePlayerController で直接再生することはできません。なぜなら、youtube は動画ファイルへの直接リンクを公開していないからです。