2011-06-21 13 views
4

HttpResponseオブジェクトからビデオコンテンツを再生したい。コンテンツはストリーミングサーバーからダウンロードしています。HttpResponseオブジェクトからのAndroidビデオストリーミング

私の要件は、サーバーへのHTTP POST要求を作成することです。リクエストには、認証の目的でユーザーのビデオ、ユーザー名、パスワードのURLが含まれます。

私はHTTP POST要求を作成し、ビデオを再生/ダウンロードする方法を知りたいと思います。

進むためにいくつかのヒント、手順/コードを記載してください。

答えて

5

を再生するには、コードの下に使用することができます私は100%確実ではないが、私はあなたが原因フォーマットは、ビデオのメタデータを格納する方法へのビデオのほとんどをストリーミングすることができないと思います。そのため、あなたはビデオファイルを何らかのフォーマットで表示するのではなく、変換する必要があります。 このメタデータをカプセル化するプロトコルがあり、動画をストリーミングすることができます(これはyoutube mobileの機能です)。 http://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol

ビデオビューでrtspリンクを使用すると、ビデオを完全にストリーミングする必要があります。要点は、あなたの問題はクライアントではなくサーバーであるということです。

練習として、m.youtube.comからrtspリンクを取得し、setVideoPathを使用してvideoViewに渡すだけで動作するはずです。

私はあなたのソリューションがあると思いますおそらく、それらをあなたのサーバーの実装を変更できない場合:ビデオを自分でダウンロードして、デコード)

1、あなたはすべてのメタデータを処理し、映像が仕事をしていることを確認しなければならないでしょうしかし、。理論的には、アンドロイド用のffmpegをコンパイルすることでそれを手助けすることができますが、ネットワークオプションを使ってアンドロイドにコンパイルすることはできませんでした。それはたくさんの仕事です。

2)独自のRTSPまたはその他のストリーミングプロトコルの実装を作成します。ビデオをスレッドでダウンロードし、デバイスにローカルサーバーを作成して、そのビデオファイルをvideoViewインスタンスにストリーミングします。私は実際にこれをアプリケーション上で動作させています。 Androidは、クライアントのサーバーが使用する特定のプロトコルをサポートしていないため、動作させる必要がありました。これを行うには一ヶ月を要した。私はすべてのクライアントのため、私は任意のサンプルコードを投稿することはできませんが、私はあなたに興味がある場合、これに関するいくつかの詳細情報を与えることができます。

いずれにしても、ビデオのサーバー/フォーマットを変更できない場合は、大量の作業を準備する必要があります。

+0

ありがとう、renam.antunes。 現在、サーバーはHTTPストリーミングを使用しており、取得したビデオファイルは.mp4形式です。 http://www.pocketjourney.com/downloads/pj/video/famous.3gpのようなその他のストリーミング対応リンクは、Androidクライアントアプリケーションで正常に動作しています。 ストリーミング対応サーバーに必要なサーバー構成の詳細を記載できますか? –

+0

ここ:http://stackoverflow.com/questions/1613737/server-to-stream-rtsp-to-android Android 3.0はHTTPライブストリーミングで動作するはずで、2.2以降ではFlash 10.1があるので、Flashベースのアプリケーションを作成してRTMP/Flash HTTP Streamingを使用することができます。しかし、どのように正確には分かりません。 –

+0

さて、これを確認して更新します。ありがとうございました。 –

1

ルック以下のリンク

ストリーミング用http://www.softwarepassion.com/android-series-get-post-and-multipart-post-requests/

http://w3mentor.com/learn/java/android-development/android-http-services/performa-a-http-post-request-with-the-httpclient-in-android/

おかげで、私はあなたが完全なファイルをダウンロードして、ビデオプレーヤーでそれを示さなければならないと思います。

+0

アシャワニありがとうございます。 レスポンスからライブストリーミングコンテンツを取得し、MediaplayerまたはVideoViewで再生する手順/コードを知りたいと思います。 :( –

+0

"ストリーミングでは、フルファイルをダウンロードしてビデオプレーヤーに表示する必要があると思います。ストリーミングビデオをダウンロードする必要はありません。ライブストリーミングの仕組みはどうですか? –

4

ビデオビューでurl httpまたはrtspを表示するためのコードを確認してください。あなたのvideoviewを呼び出す前に今

...あなたの要件は、サーバーへの異なる第1メイクHTTP POST要求されているので、ちょうど所望の入力ストリームを取得...今

public class VideoViewDemo extends Activity { 

    /** 
    * TODO: Set the path variable to a streaming video URL or a local media 
    * file path. 
    */ 
    private String path = ""; 
    private VideoView mVideoView; 

    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.videoview); 
     mVideoView = (VideoView) findViewById(R.id.surface_view); 

     if (path == "") { 
      // Tell the user to provide a media file URL/path. 
      Toast.makeText(
        VideoViewDemo.this, 
        "Please edit VideoViewDemo Activity, and set path" 
          + " variable to your media file URL/path", 
        Toast.LENGTH_LONG).show(); 

     } else { 

      /* 
      * Alternatively,for streaming media you can use 
      * mVideoView.setVideoURI(Uri.parse(URLstring)); 
      */ 
      mVideoView.setVideoPath(path); 
      mVideoView.setMediaController(new MediaController(this)); 
      mVideoView.requestFocus(); 

     } 
    } 
} 

を取得するには、..へのMP4として、そのストリームを書きますローカルファイルシステム。その後、あなたはコンテンツ

// this can be path on file system 
String path="/adf.mp4" ; 
    public void playVideo() { 

     MediaController mediaController = new MediaController(this); 
     mediaController.setMediaPlayer(videoView); 
     videoView.setVideoPath(path); 
     videoView.setMediaController(mediaController); 
     videoView.requestFocus(); 
     videoView.start(); 
     mediaController.show(); 
+0

こんにちはAnilは、ビデオをダウンロードしてファイルシステムに保存して再生するものですが、私の要求はサーバーから直接再生することです(ビデオストリーミング)。 –

+0

hi adarsh ...あなたは、 video view setVideoPath method ... ...その場合はリクエストを取得しますが、あなたの質問があれば、ポストリクエストでユーザー名とパスワードを送信する必要があります。まだ試していない場合は回避策が1つあります。 。.make 1つのhttp投稿リクエストがsepratelyで、認証トークンを取得します。ビデオをダウンロードしてビデオビューを使用してストリームにURLとともにこの認証トークンを渡します。 –

2

私はこれを試して、それは私のために働いた:Dはrtsp何もない、ちょうどmp4ビデオとURLを再生した!

public class VideoActivity extends Activity { 
    public static final String KEY = "video_id"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.fotogaleria_video); 
    Intent i = getIntent(); 
    if(i.hasExtra(KEY)){ 
     String url = "https://sites.google.com/site/tempmp4download/bnm.mp4"; 
     VideoView vv = (VideoView)findViewById(R.id.fotogaleria_video); 
     // vv.setVideoPath(url); 
     vv.setVideoURI(Uri.parse(url)); 
     vv.setMediaController(new MediaController(this)); 
     vv.requestFocus(); 
     vv.start(); 

     } 

    } 
} 
関連する問題