流wifi摄像头到android

时间:2018-02-06 15:15:04

标签: android video rtsp

我正在尝试将来自我的wifi摄像头(SJ6图例)的视频流显示到Android设备。

当从相机打开wifi并从我的Mac连接到网络时,我可以通过转到文件 - >看到来自vlc的视频流。打开网络并连接到rtsp:// MY_CAM_IP。

然后我从我的Android设备连接到wifi,我尝试使用MediaPlayerVideoView,但它不起作用。

vlc for android也不显示视频。

为了确保播放RTSP没有问题我试过这个文件: RTSP://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov

它在vlc for android和使用MediaPlayer时工作正常。

我也试过一个用于android lib的vlc,但是效果不好......

相关代码:

on onCreate:

SurfaceView surfaceView = (SurfaceView) 
findViewById(R.id.am_surface_view);
mSurfaceHolder = surfaceView.getHolder();
mSurfaceHolder.addCallback(this);
mSurfaceHolder.setFixedSize(320, 240);

/**
 * {@link MediaPlayer.OnPreparedListener} interface methods
 */
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
    mMediaPlayer.start();
}

/**
 * {@link SurfaceHolder.Callback} interface methods
 */
@Override
public void surfaceChanged(final SurfaceHolder holder, final int format, final int width, final int height) {}

@Override
public void surfaceCreated(SurfaceHolder sh) {

    mMediaPlayer = new MediaPlayer();
    mMediaPlayer.setDisplay(sh);

//    Context context = getApplicationContext();
//    Map<String, String> headers = getRtspHeaders();
//    Uri source = Uri.parse(RTSP_URL);

    try {
        // Specify the IP camera's URL and auth headers.
//        mMediaPlayer.setDataSource(context, source, headers);
//        mMediaPlayer.setDataSource(context, source);
        mMediaPlayer.setDataSource(RTSP_URL); // RTSP_URL = "rtsp://MY_CAM_IP"

        // Begin the process of setting up a video stream.
        mMediaPlayer.setOnPreparedListener(this);
        mMediaPlayer.prepareAsync();

    } catch (Exception e) {}
}

@Override
public void surfaceDestroyed(SurfaceHolder sh) {
    mMediaPlayer.release();
}

任何人都可以指出我的解决方案???

由于

1 个答案:

答案 0 :(得分:0)

当我关闭手机的蜂窝网络数据时,它终于奏效了。

不幸的是,我需要接收相机流并且有网络连接来发送收到的帧,但我猜这是另一个问题......