rtmp直播拉流安卓开发

来源:互联网 发布:俄罗斯 叙利亚 知乎 编辑:程序博客网 时间:2024/06/05 19:14

最近,做学校的大创,涉及安卓拉流服务。作为一个安卓新手,做这个走了很多弯路。网上有很多教程,但很多都不适合新手,故结合网上资源与教程,专门写了篇适合新手的开发教程。

开发环境:Mac os10.12.6+android studio2.3.3

我是用Vitamio这个开源的库来实现拉流的,首先要在android studio中导入Vitamio。

导入步骤:

  1. 下载Vitamio bundle https://github.com/yixia/VitamioBundle
  2. 解压并且在Android Studio上File->New->Import Module,将Vitamiobundle-master中的Vitamio文件夹导入项目按ok,finish结束
  3. 在build.gradle(Module: app)依赖部分添加依赖项目(‘:vitamio’)
  4. 打开build.gradle (Module: vitamio) - 改变最小sdk版本为7,同时将targetsdkversion改为小于23的数值
  5. 在自己app中的manifest.xml中添加internet权限,位置在app->src->main->manifest.xml, 如下图,<application上面那句

然后就进入正式编写了,我这里只放demo核心功能

编写自己的activity_main.xml:


<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:orientation="vertical" >    <io.vov.vitamio.widget.VideoView        android:id="@+id/vitamio_videoView"        android:layout_width="wrap_content"       android:layout_height="wrap_content" /></LinearLayout>

继续编写mainactivity.java
package com.example.videodemo;import android.net.Uri;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import java.util.HashMap;import io.vov.vitamio.LibsChecker;import io.vov.vitamio.MediaPlayer;import io.vov.vitamio.widget.MediaController;import io.vov.vitamio.widget.VideoView;public class MainActivity extends ActionBarActivity {    private static final String TAG = "MainActivity";    private String path;    //private HashMap<String, String> options;    private VideoView mVideoView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        if (!LibsChecker.checkVitamioLibs(this))            return;        setContentView(R.layout.activity_main);        mVideoView = (VideoView) findViewById(R.id.vitamio_videoView);        path = "rtmp://59.110.xxx.xxx:1935/hls/film";//这里写你自己的拉流地址        mVideoView.setVideoPath(path);        //mVideoView.setVideoURI(Uri.parse(path), options);        mVideoView.setMediaController(new MediaController(this));        mVideoView.requestFocus();        mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {            @Override            public void onPrepared(MediaPlayer mediaPlayer) {                mediaPlayer.setPlaybackSpeed(1.0f);            }        });    }}

把拉流地址改成自己的拉流地址。

然后run,看看是不是已经可以了,打开生成的app,缓冲一会儿,就开始自动播放你地址的视频了,用同样的方法可以实现视频的点播。

用vitamio还可以实现网速显示,亮度调节等功能,这些就要靠你们一一摸索了。


原创粉丝点击