2011-11-04 63 views
8

私はこれまでの解決策(SOを含む)をすべて探しましたが、解決策はまだ見つかりませんでした。申し訳ありません、このビデオは再生できません - アンドロイドへのMP4のストリーミング

アプリで簡単な動画再生が必要です。ビデオ付きの単純なウィンドウよりも単純ではありません。簡略化して、画面には2つのレイアウトがあります.1つは他のものを含み、もう1つはビデオウィンドウを持つことです。また、2つを切り替えるボタンもあります。これはすべてうまくいきます。ビデオビューが可視性がなくなったビューには存在しないとわかったので、必要に応じてコンテナレイアウトに追加/削除します。

しかし、私は実際のビデオ再生に問題があります。私はそれをアクティブにしようとすると恐ろしいエラーが発生しますSorry, this video cannot be played.ここにある質問の1つは、ビデオフォーマット(Android -- Can't play any videos (mp4/mov/3gp/etc.)?)についての議論ですが、320pxの幅とそれ以外のものはすべて正しいフォーマットのようです。そのスレッドの回答の1つに、hereのビデオが「間違いなく働いている」と書かれています。私はそこからカップルを試しました - しかし、私は別の共通の獣を持っています:Sorry, this video is not valid for streaming to this device.

ビデオ再生がエミュレータでは動作していないので、実際のデバイスでテストしています。また、ソリューションはAndroid 1.6以上(クライアントの要件)で動作する必要があります。私がテストしているデバイスは、Android 2.1搭載LG GT540 Optimusです(現在は他のデバイスはありません)。私はqt-faststartを使用する場合、私はエラーSorry, this video is not valid for streaming to this device.を取得し、動画にqt-faststartを使用していない場合、私は、考え出したものから、

、その後、私はSorry, this video cannot be played.

を取得ここで再生のための私のコードです:

VideoViewer videoPlayer = new VideoViewer(this); 
MediaController mediaController = new MediaController(this); 
mediaController.setAnchorView(videoPlayer); 
videoPlayer.setMediaController(mediaController); 
videoPlayer.setVideoURI(Uri.parse(object.getVideoURL())); 
LinearLayout container = (LinearLayout)ObjectInfo.this.findViewById(R.id.VideoContainer); 
container.setVisibility(VISIBLE); 
container.addView(videoPlayer, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
videoPlayer.requestFocus(); 
videoPlayer.start(); 

さて、私はプレーしようとしている動画は、プログレッシブ・ダウンロードしたHTTPからのものである:object.getVideoURL()戻りhttp://www.ooklnet.com/files/381/381489/video.mp4

誰が私はこれを並べ替える助けてくださいでる?これは、アプリケーション全体が準備される前に私が完了する必要がある最後のものです。

多くの感謝!

編集: MediaPlayerを使用しようとしましたが、VideoViewよりも悪い結果が得られましたので、VideoViewに戻りました。さて、シミュレータでは、コントロールを上に乗せた黒い画面が表示され、ビデオのサウンドはうまく再生されています。再生が続行されると、進行状況も調整されます。しかし、私の実際のデバイスでは、私はまだSorry, this video cannot be played.エラー

+0

ビデオを再生するためにサーバーからURLを設定するにはどうすればよいですか?あなたのビデオを再生するために私のURLが必要ですが、動作しません:(もしあなたのビデオを私のブラウザやAndroidアプリで使用するなら、それは完璧に動作します。私のURL(http://XXX.XXX.XXX.XXX/srv/ProductVideos/[email protected]/s/s_7s.MP4)を試してみたら –

答えて

6

この問題は、ビデオのフォーマット(具体的には、私がffmpegでMP4ビデオを作成するために使用したパラメータ)に問題があることが判明しました。私はビデオがbaseline H.264であることを保証しました - そしてすべてが正しく機能しました。詳細については、this questionを参照してください。

+0

私はあなたがプレイしていたURLを持っていますか?私は似たような問題に悩まされており、OS 2.2を搭載した私のSamsung Galaxy 551でビデオを再生できません。テスト用のURLリンクを教えてください。ありがとう –

+0

@ Rashmi.B私のLGの電話で完璧に再生されている1つはここです:http://www.ooklnet.com/files/368/368007/video.mp4 –

+0

@Aleks Gは、私はmovのURLを再生しようとしていますこれは.3gpのURLまたは.mp4のURLにリダイレクトされます。 Galaxyのv2.3.xは.movのURLを再生しますが、その他のデバイス(4.01,2.2、または2.3.x以外のデバイス)では、最初にリダイレクトされたrtsp URLを取得してビデオを再生する必要があります。リダイレクトされたrtsp URLもランダムに再生されます。あなたはいくつかの解決策を提案できますか?モバイルの互換性に基づいて動画のベースラインを設定する方法もありますか? –

1

を取得している可能性がありますあなたのMediaPlayerを設定する方法を変更する必要があります。私はあなたのサンプルビデオのURLをapidemosサンプルにプラグインしました。うまくいきました。

参照:助け http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html

希望。

+0

この例ではMediaViewを使用していましたが、VideoView 。 MediaPlayerを代わりに使用してみると、何が起こるかを見ていきます。 –

関連する問題