当前位置:编程学习 > wap >>

求教!!!关于用videoview播放rtsp

界面是先点击“启动本地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);
}




} --------------------编程问答-------------------- 以前我遇到过VideoView无法播放与自己分辨率不同的视频,比如说VideoView的分辨率是3:2,你视频的是4:3,就会弹出这个错误。

可以先试试使用SurfaceView + MediaPlayer播放(VideoView是这两个东东封装起来的),如果可以放,那就是分辨率的问题,如果不能放,那就不太清楚了。 --------------------编程问答-------------------- 不好意思。。那请问这个SurfaceView + MediaPlaye怎么在我这个基础上改,或者说怎么看分辨率适合哪个,之前弄了半天也出不来,本人大四弄毕设,代码也不是本人完全写进去的,对这些不是很懂,希望多多帮忙。。 --------------------编程问答--------------------
引用 1 楼 ueryueryuery 的回复:
以前我遇到过VideoView无法播放与自己分辨率不同的视频,比如说VideoView的分辨率是3:2,你视频的是4:3,就会弹出这个错误。

可以先试试使用SurfaceView + MediaPlayer播放(VideoView是这两个东东封装起来的),如果可以放,那就是分辨率的问题,如果不能放,那就不太清楚了。

不好意思。。那请问这个SurfaceView + MediaPlaye怎么在我这个基础上改,或者说怎么看分辨率适合哪个,之前弄了半天也出不来,本人大四弄毕设,代码也不是本人完全写进去的,对这些不是很懂,希望多多帮忙。。 --------------------编程问答-------------------- 1.android自带的只有h264和mp4v两个视频解码器,而且支持的规格都比较有限.
可以将你的视频放到板子上,先确保用Gallery能正常播放。

2.我记得android4.0里的Nuplayer还没实现好,是不能直接播放rtsp码流的 --------------------编程问答--------------------
引用 3 楼 vampirezio 的回复:
Quote: 引用 1 楼 ueryueryuery 的回复:

以前我遇到过VideoView无法播放与自己分辨率不同的视频,比如说VideoView的分辨率是3:2,你视频的是4:3,就会弹出这个错误。

可以先试试使用SurfaceView + MediaPlayer播放(VideoView是这两个东东封装起来的),如果可以放,那就是分辨率的问题,如果不能放,那就不太清楚了。

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


你在网上查用MediaPlayer播放流/视频就可以了,一般都是用SurfaceView来显示的。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,