前言:
鉴于工作需要,需要在Android 平台上开发一个视频直播功能的模块,所以,几经波折,找到了其解决办法,虽不是那么完美,但至少有些小成,当然,在此
感谢网上热心人的分享,下面就说一下其具体实现吧.....
总体思路:
Android 手机数据采集端用来采集视频数据,
然后传输给流媒体服务器,与此同时,
另一手机播放端通过VLC用来播放我们采集的视频
I>
Android 手机端1用来采集视频数据的思路:
在这里主要是借助网上已经写好的开源项目:libstreaming
首先我们将libstreaming以库的形式导入进工程中;
关于如何导入libstreaming,可以参考博客《在Android Studio中如何导入工程库》
导入libstreaming之后,编写如下代码用来进行数据的采集及预览显示:
CameraActivity:
package com.example.dai.Winbo.activity.About; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.Menu; import android.view.SurfaceHolder; import android.view.View; import com.example.dai.Winbo.R; import net.majorkernelpanic.streaming.Session; import net.majorkernelpanic.streaming.SessionBuilder; import net.majorkernelpanic.streaming.audio.AudioQuality; import net.majorkernelpanic.streaming.gl.SurfaceView; import net.majorkernelpanic.streaming.rtsp.RtspClient; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CameraActivity extends AppCompatActivity implements RtspClient.Callback, Session.Callback, SurfaceHolder.Callback{ // log tag public final static String TAG = CameraActivity.class.getSimpleName(); // surfaceview private static SurfaceView mSurfaceView; // Rtsp session private Session mSession; private static RtspClient mClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.