1,第一步先将yasea依赖集成到Android项目里面(这一步就不介绍了,百度有开源的包下载)
2,第二步在Android项目里面新建一个activity实现
RtmpHandler.RtmpListener, SrsRecordHandler.SrsRecordListener, SrsEncodeHandler.SrsEncodeListener
这几个接口。
3,第三步创建一个简单的布局
4,第四部初始化控件就不说了,直接开始准备推了。
初始化一些推流工作,设置各种回调,预览页面,像素,编码,开启摄像头等等。
private void initVideo() {
// restore data.
mPublisher = new SrsPublisher(srcView);
mPublisher.setEncodeHandler(new SrsEncodeHandler(this));
mPublisher.setRtmpHandler(new RtmpHandler(this));
mPublisher.setRecordHandler(new SrsRecordHandler(this));
mPublisher.setPreviewResolution(640, 360);
mPublisher.setOutputResolution(360, 640);
mPublisher.setVideoHDMode();
mPublisher.switchToSoftEncoder();//默认使用硬编码
mPublisher.startCamera();
srcView.setCameraCallbacksHandler(new SrsCameraView.CameraCallbacksHandler() {
@Override
public void onCameraParameters(Camera.Parameters params) {
}
});
}
准备开始推流(这里地址可以设置成自己专有的服务地址,例如:rtmp://ip:port/live/1234)
@OnClick(R.id.pullBtn)
public void onClick() {
// mPublisher.switchToHardEncoder();
mPublisher.startPublish(pullUrl.getText().toString().trim());
mPublisher.startCamera();
Toast.makeText(this, "推流成功", Toast.LENGTH_SHORT).show();
}
设置美颜和滤镜(一些滤镜效果不知道专业术语怎么称呼,直接百度翻译的)
private void initTypes() {//初始化美颜
types.put("冷静", MagicFilterType.COOL);
types.put("美颜", MagicFilterType.BEAUTY);
types.put("素颜", MagicFilterType.NONE);
types.put("早起的鸟", MagicFilterType.EARLYBIRD);
types.put("常绿的", MagicFilterType.EVERGREEN);
types.put("1997年", MagicFilterType.N1977);
types.put("怀旧", MagicFilterType.NOSTALGIA);
types.put("甜食", MagicFilterType.ROMANCE);
types.put("浪漫", MagicFilterType.SAKURA);
types.put("日出", MagicFilterType.SUNRISE);
types.put("日落", MagicFilterType.SUNSET);
types.put("柔和", MagicFilterType.TENDER);
types.put("烤面包机", MagicFilterType.TOASTER2);
types.put("巴伦西亚", MagicFilterType.VALENCIA);
types.put("瓦尔登湖", MagicFilterType.WALDEN);
types.put("温柔", MagicFilterType.WARM);
String[] array = new String[]{"素颜","冷静","美颜","早起的鸟","常绿的","1997年","怀旧","甜食","浪漫", "日出","日落",
"烤面包机", "巴伦西亚","瓦尔登湖","温柔","柔和"};
ArrayAdapter arrayAdapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,array);
typesList.setAdapter(arrayAdapter);
typesList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
MagicFilterType filterType = types.get(array[position]);
mPublisher.switchCameraFilter(filterType);
Toast.makeText(PullStreamActivity.this, array[position], Toast.LENGTH_SHORT).show();
}
});
}
5,退出页面时关闭推流,录音摄像头等等。
@Override
protected void onDestroy() {
super.onDestroy();
mPublisher.stopCamera();
mPublisher.stopPublish();
mPublisher.stopAudio();
mPublisher.stopEncode();
mPublisher.stopRecord();
}
6,最后记得加权限,权限申请什么的不在这写了,在此附上一个依赖的下载地址,希望能帮到大家。