web-dev-qa-db-ja.com

VideoViewを使用したスト​​リーミングまたはプログレッシブダウンロードビデオ

VideoViewを使用してビデオを再生する方法について混乱しています:ローカルファイルから、プログレッシブダウンロードおよびストリーミングとして。

この例 ファイルをダウンロードしてローカルで再生することで(少なくとも1.5および2.0で)動作します。

しかし、再生する前にビデオをダウンロードする必要があります:APIサンプルのVideoViewDemoのように、単にsetVideoPathまたはsetVideoURIを使用して、プログレッシブダウンロードとして、またはストリーミングによってビデオを再生することは可能ですか?

VideoViewDemoコードは、ストリーミングにsetVideoURIを使用することを提案していますが、どの種類のURLを使用する必要があるかは明確ではありません。 VideoViewDemoコードを使用してAndroidエミュレーターにストリーミングできる動画のサンプルURLがありますか?

プログレッシブダウンロードはVideoViewDemoで使用できますか?上記のリンクされているブログの例で問題なく機能するURLでsetVideoPathを使用すると、「申し訳ありませんが、このビデオを再生できません」というメッセージが表示されます(これはエミュレーターの問題ですか?1.5と2.0を試しました)

オンラインで多くの例とドキュメントを見つけましたが、これまでのところ、この質問に実際に答えているものはありません。

41
Sam Dutton

aPIサンプルのVideoViewDemoのように、setVideoPathまたはsetVideoURIを使用するだけで、プログレッシブダウンロードとして、またはストリーミングでビデオを再生することは可能ですか?

そうすべき。確かにMediaPlayerで動作し、VideoViewMediaPlayerSurfaceViewの〜200行のラッパーです。

VideoViewDemoコードは、ストリーミングにsetVideoURIを使用することを提案していますが、どの種類のURLを使用する必要があるかは明確ではありません。

http://およびrtsp://は、ビデオが適切にエンコードされていれば機能します。

VideoViewDemoコードを使用してAndroidエミュレーターにストリーミングできる動画のサンプルURLがありますか?

このビデオ Nexus Oneを除き、MediaPlayerで動作します。

[〜#〜] edit [〜#〜]:実際、そのリンクはNexus Oneでも機能します。

19
CommonsWare

単純なケースで機能しますが、ストリームを取得するリクエストのカスタム準備を行う必要がない場合のみです。

このチュートリアルでは、オーディオの手動ストリーミングエミュレーションの例を示しますが、ビデオを再生するために少しリファクタリングすることができます。

http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/

FileDescriptorを設定するときは、必ずdataSourceを使用してください。APIはその時からわずかに変更されました)。

2
shaman.sir