界面是先点击“启动本地RTSP服务器”,然后再点击“开始播放”
然后就出现“Cannot play video sorry this video cannot be played”
发送端我是用VLC播放器将MP4或3pg视频进行RTSP的串流,然后接收端是用VIDEOVIEW进行播放
下面是我的代码,求大神帮忙看下究竟是哪里的问题,小弟感激不尽
package com.android.rtsp;import java.io.IOException;
import java.net.ServerSocket;import com.android.rtsp.RtspEnumType.RtspType;import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.VideoView;public class rtspAcitivity extends Activity implements StartRtspListener{

Button btn;
Button start;
VideoView videoView;

ServerSocket server = null;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        btn = (Button)this.findViewById(R.id.play);
        btn.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {

try {
server = new ServerSocket (5540);
} catch (IOException e) {
e.printStackTrace();
}
rtspThread rtsp = new rtspThread(rtspAcitivity.this,0,server);
}
        });
        
        videoView = (VideoView)this.findViewById(R.id.videoview);
        
        start = (Button)this.findViewById(R.id.start);
        start.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
videoView.setVideoURI(Uri.parse("RTSP地址"));  
videoView.requestFocus();
videoView.start();
}
        });
    } public void StartVideoViewRtsp(int whichOne, RtspType eventCode,rtspThread server){
rtspAcitivity.this.runOnUiThread(new Runnable(){
public void run() {
videoView.setVideoURI(Uri.parse("RTSP地址")); 
videoView.requestFocus();
videoView.start();
}
});
} @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK)
{
try {
server.close();
server = null;
} catch (IOException e) {
e.printStackTrace();
}
}
return super.onKeyDown(keyCode, event);
}




}

解决方案 »

  1.   

    以前我遇到过VideoView无法播放与自己分辨率不同的视频,比如说VideoView的分辨率是3:2,你视频的是4:3,就会弹出这个错误。可以先试试使用SurfaceView + MediaPlayer播放(VideoView是这两个东东封装起来的),如果可以放,那就是分辨率的问题,如果不能放,那就不太清楚了。
      

  2.   

    不好意思。。那请问这个SurfaceView + MediaPlaye怎么在我这个基础上改,或者说怎么看分辨率适合哪个,之前弄了半天也出不来,本人大四弄毕设,代码也不是本人完全写进去的,对这些不是很懂,希望多多帮忙。。
      

  3.   

    不好意思。。那请问这个SurfaceView + MediaPlaye怎么在我这个基础上改,或者说怎么看分辨率适合哪个,之前弄了半天也出不来,本人大四弄毕设,代码也不是本人完全写进去的,对这些不是很懂,希望多多帮忙。。
      

  4.   

    1.android自带的只有h264和mp4v两个视频解码器,而且支持的规格都比较有限.
    可以将你的视频放到板子上,先确保用Gallery能正常播放。2.我记得android4.0里的Nuplayer还没实现好,是不能直接播放rtsp码流的
      

  5.   

    不好意思。。那请问这个SurfaceView + MediaPlaye怎么在我这个基础上改,或者说怎么看分辨率适合哪个,之前弄了半天也出不来,本人大四弄毕设,代码也不是本人完全写进去的,对这些不是很懂,希望多多帮忙。。你在网上查用MediaPlayer播放流/视频就可以了,一般都是用SurfaceView来显示的。