天天看点

android播放rtsp文件

         最近尝试在android上播放rtsp实时流,最初的思路是:因为自己以前知道android 高版本支持rtsp协议,故打算用android自带的mediaPlayer看看效果,结果才发现这种方式只能播放rtsp流文件,不能播放实时流,实质与知道网络的url,播放网络视频类似。

          虽然暂时对自己无用,但还是记录下来,方便以后使用,关键代码如下

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.VideoView;

public class TestRTSP extends Activity{
 
 private EditText etURL;
 private Button play,pause,stop;
 private VideoView mVideoView;
 
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
         
         etURL = (EditText)findViewById(R.id.URL);
         play = (Button)findViewById(R.id.play);
         pause = (Button)findViewById(R.id.pause);
         stop = (Button)findViewById(R.id.stop);
        
         
  play.setOnClickListener(new Button.OnClickListener(){
  public void onClick(View v) {
  PlayRtspStream(etURL.getEditableText().toString());
  }
  });

  mVideoView = (VideoView)this.findViewById(R.id.VideoViewDisplay);

  }

  //play rtsp stream
  private void PlayRtspStream(String rtspUrl){
   mVideoView.setVideoURI(Uri.parse(rtspUrl));
   mVideoView.requestFocus();
   mVideoView.start();
  }
}


           
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/widget32"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<EditText
android:id="@+id/URL"
android:hint="请输入rtsp url"
android:layout_width="300px"
android:layout_height="50px"
>
</EditText>
<Button
android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="50px"
android:text="播放"
>
</Button>

<Button android:layout_width="wrap_content" 
android:id="@+id/pause" android:layout_height="50px" 
android:text="暂停"></Button>

<Button
android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="50px"
android:text="停止"
>
</Button>
<VideoView android:id="@+id/VideoViewDisplay"
 android:layout_width="352px" 
 android:layout_height="288px">
</VideoView>


</LinearLayout>
           

            在知道这种方式不可行以后,故把目光放在vlc for android这个代码上,网上有vlc for android编译好的源代码,故考虑从其中提取自己想要的代码。等自己有空的时候分析下vlc for android 源码