Android用yasea集成推流服务并实现美颜滤镜

1,第一步先将yasea依赖集成到Android项目里面(这一步就不介绍了,百度有开源的包下载)

Android用yasea集成推流服务并实现美颜滤镜_第1张图片

2,第二步在Android项目里面新建一个activity实现

RtmpHandler.RtmpListener, SrsRecordHandler.SrsRecordListener, SrsEncodeHandler.SrsEncodeListener

这几个接口。

3,第三步创建一个简单的布局

Android用yasea集成推流服务并实现美颜滤镜_第2张图片



    
    
        
        

4,第四部初始化控件就不说了,直接开始准备推了。

Android用yasea集成推流服务并实现美颜滤镜_第3张图片

初始化一些推流工作,设置各种回调,预览页面,像素,编码,开启摄像头等等。

    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,最后记得加权限,权限申请什么的不在这写了,在此附上一个依赖的下载地址,希望能帮到大家。

你可能感兴趣的:(直播,美颜滤镜,android)