89

MPMoviePlayerController を使用していくつかの youTube ビデオをストリーミングしようとしていますが、いくつか問題があります。私が使用しているコードは非常に単純で、URL を initWithContentURL に渡すことで .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 も見て、それを両方の文字列の最後に追加しようとしましたが、うまくいきませんでした。

4

8 に答える 8

78

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

残念ながら、MPMoviePlayerControllerYouTube はビデオ ファイルへの直接リンクを公開していないため、YouTube ビデオを直接再生する方法はありません。

于 2009-11-23T05:06:38.943 に答える
26

コードを使用している場合:

- (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];  
  }

ソース:

このリンクを参照してください

シミュレーターではなくデバイスでテストしてください。シミュレーターは常にクエスチョン マークと青いボックスを表示するため (クイック タイム プレーヤーはありません)。

于 2010-07-13T21:33:08.763 に答える
23

上記のコメントで書いたように、私が取り組んでいたプロジェクトでこれを行う必要がありました。この問題を解決し、コードを github に提出しました。

ソースを確認して、ここでフォークできます。

基本的に、YouTube の URL を受け取り、iOS と互換性のあるすべてのビデオの URL を取得します。

これが何かの助けになることを願っています!
乾杯

于 2012-06-08T11:42:12.577 に答える
12

たまたま、YouTubeビデオをMPMoviePlayerController. それは今可能であるように見えます。

LBYouTubeView

于 2012-06-01T12:52:48.707 に答える
2

You Tube ビデオを再生するには、URL を に渡す前に URL を抽出する必要がありますMPMoviePlayer。直接再生することはできません。

私の github リポジトリには、これのデモ実装があります。

見る:

https://github.com/DpzAtMicRO/IOSYoutubePlayer

MPMoviePlayer試してみてください。これにより、他のビデオと同じように YouTube ビデオを直接読み込んで再生することができ、かなり良いアプローチでもあります。

編集: プロジェクトでこれを使用する前に、Readme.md をよく読んでください。

于 2012-12-05T09:16:07.430 に答える
1

新しい埋め込みコードの iframe の src 要素を取得して呼び出すのと同じくらい簡単です。

[self.webView loadRequest:[NSURLRequest requestWithURL:self.url]];
于 2012-10-21T15:49:01.083 に答える