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's
コンテンツとして再生する映画のYoutubeの埋め込みタグでUIWebView
を作成することです。 UIWebView
は、埋め込みオブジェクトがYoutubeリンクであることを検出し、Webビューのコンテンツがビデオのyoutubeプレビューになります。ユーザーがプレビューをクリックすると、ビデオがMPMoviePlayerControllerに表示されます。これは、Muxecoidが提供したリンクで説明されている手法です( アプリケーション内でyoutubeビデオを再生する方法 )。これは(私の知る限り)youtubeビデオを再生する唯一の方法ですアプリケーション。 YouTubeのURLを-[UIApplication openURL:]
に渡すことで、Youtubeアプリケーションを起動できますが、もちろんこれにより、多くの場合望ましくない独自のアプリケーションが閉じられます。
残念ながら、YouTubeはビデオファイルへの直接リンクを公開しないため、MPMoviePlayerController
でYouTubeビデオを直接再生する方法はありません。
コードを使用している場合:
- (void)embedYouTube:(NSString*)url frame:(CGRect)frame {
NSString* embedHTML = @"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: white;\
}\
</style>\
</head><body style=\"margin:0\">\
<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";
NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height];
if(videoView == nil) {
videoView = [[UIWebView alloc] initWithFrame:frame];
[self.view addSubview:videoView];
}
[videoView loadHTMLString:html baseURL:nil];
}
ソース:
シミュレータではなくデバイスでテストしてください。シミュレータは常に青いボックスで疑問符を表示するため(クイックタイムプレーヤーはありません)。
私のコメントで上に書いたように、私は取り組んでいたプロジェクトでこれをしなければなりませんでした。この問題を解決し、githubでコードを送信しました。
ソースを確認してフォークすることができます here 。
基本的にはyoutubeのURLを受け取り、iOS互換のすべてのビデオのURLを取得します。
これが助けになることを願っています!
乾杯
YouTube
の中にMPMoviePlayerController
のビデオを置くことができた人に出会ったばかりです。今では可能に見えます。
チューブビデオを再生するには、MPMoviePlayer
にURLを渡す前にURLを抽出する必要があります。直接プレイすることはできません。
私のgithubリポジトリには、これのデモ実装があります。
見る:
https://github.com/DpzAtMicRO/IOSYoutubePlayer
試してみてください。これにより、他のビデオと同様にMPMoviePlayer
に直接youtubeビデオをロードして再生できるようになり、かなり良いアプローチです。
編集:プロジェクトでこれを使用する前に、Readme.mdを十分に確認してください。
新しい埋め込みコードのiframeのsrc要素を取得して呼び出すのと同じくらい簡単です
[self.webView loadRequest:[NSURLRequest requestWithURL:self.url]];
Googleが提供するiOSアプリケーションにYouTubeビデオを埋め込む公式の方法があります。
Cocoapodsを介してライブラリをインストールします:pod "youtube-ios-player-helper"
インポート元:#import “YTPlayerView.h”
UIView
を使用してクラスをYTPlayerView
に設定するか、YTPlayerView
のオブジェクトをプログラムで作成します。
動画を読み込む:[self.playerView loadWithVideoId:@"M7lc1UVf-VE"];
playVideo
およびstopVideo
メソッドも利用できます。詳細については、 このリンク をご覧ください
次のリンクを確認してください。役立つと思います。
https://mobiletechfeast.blogspot.in/2014/08/youtube-player-for-ios.html