19

Web用のビデオコンテンツをFlash形式で持っているクライアントがあります。私の仕事は、彼らがiPhoneアプリでビデオを見せるのを助けることです。MPMoviePlayerControllerの長所と短所ムービーをストリーミングするためのUIWebViewの起動

私は、これらの動画をiPhone用の適切なQuicktime形式にすることが重要だと思います。

次に、クライアントがどのようにしてこれらのファイルをホストするかを理解する手助けをする必要があります。それが難しいのであれば、YouTubeでホストできると思います。

私の主な関心事は、ビデオをストリーミングするためのアプローチです。 MPMoviePlayerControllerの長所と短所は何ですか?ストリームのURLを使用してUIWebViewを起動しますか?違いはありますか?そのうちの1人は多かれ少なかれ寛容ですか?そのうちの1つはユーザーエクスペリエンスが優れていますか?私が遭遇すると思われるどんな邪魔?

iPhoneでビデオを再生するのが簡単だとします。両方を試して、フォールバックとして利用できるようにするのは合理的ですか、それとも時間の無駄でしょうか?私は少しこれを予定しているので、私はこれをやった人から現実世界の経験を聞くのが大好きだ。

答えて

9

UIWebViewでは実際にビデオを再生できません。 UIWebviewでYoutubeページに移動するだけで、iPhoneのYoutube Appが起動します。これを一定の方法で行うと、動画を再生した後でアプリにコントロールが返されます。ここをクリックしてください:http://iphoneincubator.com/blog/tag/uiwebview

単純なストリーミングを行うだけであれば、MPMoviePlayer Controllerの使用をお勧めします。ここでは、始めるためにいくつかのサンプルコードです:

NSString *url = @"http://www.example.com/path/to/movie.mp4"; 
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] 
             initWithContentURL:[NSURL URLWithString:url]]; 
[moviePlayer play]; 
+0

OK。だから私の本当の選択は、YouTubeアプリとMPMoviePlayerControllerの間です。ありがとう - 後者の選択は実際にはかなり簡単に見えます。私はおそらく先に進み、両方の方法を試みます。 – Nosredna

+0

Dan - 2つのコード行が両方とも "コード"としてフォーマットされるように回答を編集できますか?少なくともFirefox 3.5では私はフォーマットされたコードとしてNSString行を見ていますが、MPMoviePlayerController行はありません。それは次の男のために見えるようにするためのちょうど提案。 –

25

EDIT:この答えで私の元の例ではCGRectZeroのフレームとのWebViewを初期化します。これは、iOS 3.2まで機能しました。 iOS 4以降、Webviewのフレームがゼロでないか、動画が再生されません。この変更を反映するために私の下の例を編集しました。


ここで受け入れられる回答は正確ではありません。実際には、UIWebViewを使用してビデオをストリーミングすることができます。また、いくつかの点で、MPMoviePlayerControllerよりも優れています。 loadRequest:を使用してビデオファイル(例:mp4)をリクエストするようにUIWebViewに指示すると、新しいウィンドウが開き、アプリ内でビデオがストリーミングされます。 MPMoviePlayerControllerとは異なり、UIWebViewで作成されたビデオウィンドウは、横向きまたは縦向きに回転できます。動画が終了すると、このウィンドウを閉じてアプリに戻ることができます。


EDIT 2:あなたが今MPMoviePlayerViewControllerを使用して回転させるビデオプレーヤーを実装することができますので、私はもはやこの回答に記載された技術を使用してビデオのためのUIWebViewを使用する理由を考えることはできません。


ヒント:のUIWebViewは動画を再生する独自のウィンドウを作成するので、あなたも、あなたのビュー階層にのUIWebViewを追加する必要はありません。 UIWebViewオブジェクトを作成してloadRequest:を呼び出すだけで、オブジェクトをaddSubview:に渡すことなくビデオを再生できます。

+0

私は、UIWebViewを使ってビデオを縦向きに表示するのに最適な方法であることを発見しました。しかし、sim v3.1.3でテストするときは、ビュー階層にUIWebViewを追加する必要がありました。 .movファイルを再生しようとしましたが、Quicktimeプレーヤーでそれを開き、iPhone用の「別名で保存」を実行すると、使える.m4vバージョンが得られました。 – Jason

+0

また、UIWebViewによって起動されたムービープレーヤーは、MPMoviePlayerControllerと同じくらい多くのビデオフォーマットを処理できないと付け加えることができます。たとえば、多くのデジタルカメラで記録されているJPEGエンコードされたムービーは、その上に十字線が付いた再生ボタン(破損したムービーを示す)として表示されます。 これはインターフェイスの向きかすべてのビデオ形式です。 – alleus

+0

@cduhn:このコードを4.0で確認できますか?私はこのように "設定映画パス:(null)"を取得します。それはまだ3.2で動作しますが - 非常に混乱します – scud

関連する問題