在观看的一方使用的是Vitamio

下载Vitamiosdk,打入打包成lib

新建工程,导入raw,和这个lib

权限

<uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

添加activity

 <activity
            android:name="io.vov.vitamio.activity.InitActivity"android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"android:launchMode="singleTop"android:theme="@android:style/Theme.NoTitleBar"android:windowSoftInputMode="stateAlwaysHidden" />

初始化


Vitamio.initialize(this);

使用方式

mediaPlayer = new MediaPlayer(this);
try {mediaPlayer.setDataSource(url);mediaPlayer.setDisplay(holder);mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {@Overridepublic void onPrepared(MediaPlayer mp) {mediaPlayer.start();}});
mediaPlayer.prepareAsync();
mediaPlayer.setBufferSize(1024 * 1024 * 2);
} catch (IOException e) {
e.printStackTrace();
}

一个案例分析

public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback, View.OnClickListener {//String url = "rtmp://zhibo2.whunf.com.cn/xykj/push";//下面是一个香港卫视的地址,这里一般是需要放自己推流的地址
String url = "rtmp://live.hkstv.hk.lxdns.com/live/hks";//  String url = "http://live121.cnlive.com:1935/live/shijiexiaojie/playlist.m3u8";SurfaceView sv;ImageView iv;MediaPlayer mediaPlayer;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sv = (SurfaceView) findViewById(R.id.sv);iv = (ImageView) findViewById(R.id.iv);sv.getHolder().addCallback(this);sv.setOnClickListener(this);sv.getHolder().setFormat(PixelFormat.RGBA_8888);}@Overridepublic void surfaceCreated(SurfaceHolder holder) {mediaPlayer = new MediaPlayer(this);try {mediaPlayer.setDataSource(url);//设置资源mediaPlayer.setDisplay(holder);//设置屏幕//设置预加载的监听mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {@Overridepublic void onPrepared(MediaPlayer mp) {mediaPlayer.start();}});mediaPlayer.prepareAsync();//设置预加载mediaPlayer.setBufferSize(1024 * 1024 * 2);//缓存字节} catch (IOException e) {e.printStackTrace();}}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {if (mediaPlayer != null) {if (mediaPlayer.isPlaying())mediaPlayer.stop();mediaPlayer.release();mediaPlayer = null;}}Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);iv.setVisibility(View.GONE);}};@Overridepublic void onClick(View v) {//暂停if (mediaPlayer != null) {if (mediaPlayer.isPlaying()) {//暂停iv.setVisibility(View.VISIBLE);iv.setImageResource(R.mipmap.pause);mediaPlayer.pause();} else {iv.setImageResource(R.mipmap.play);mediaPlayer.start();handler.sendEmptyMessageDelayed(1, 2000);}}}
}

MyApp

public class MyApp extends Application {@Overridepublic void onCreate() {super.onCreate();Vitamio.initialize(this);}
}

xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.xwei.zhibo.MainActivity">
<SurfaceView
    android:layout_width="match_parent"android:id="@+id/sv"android:layout_height="match_parent" /><ImageView
        android:id="@+id/iv"android:visibility="gone"android:layout_width="50dp"android:layout_height="50dp"android:layout_centerInParent="true"android:src="@mipmap/pause" />
</RelativeLayout>

manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.xwei.zhibo"><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><application
        android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:name=".MyApp"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity
            android:name="io.vov.vitamio.activity.InitActivity"android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"android:launchMode="singleTop"android:theme="@android:style/Theme.NoTitleBar"android:windowSoftInputMode="stateAlwaysHidden" /></application></manifest>

android中直播接受的一方相关推荐

  1. Android中直播视频技术探究之---基础知识大纲介绍

    该博客转载于猿是一种能够改变世界的动物!! 一.前言 最近各种视频直播app到处都是,各种霸屏,当然我们也是需要体验的,关于视频直播的软件这里就不介绍了,在不是技术的人来看,直播是一种潮流,是一种娱乐 ...

  2. 直播带货源码,Android中直播视频技术探究

    一.前言 最近各种视频直播app到处都是,各种霸屏,当然我们也是需要体验的,关于视频直播的软件这里就不介绍了,在不是技术的人来看,直播是一种潮流,是一种娱乐方式,但是作为一个高技术的,我们除了看看,更 ...

  3. android 触摸 唤醒屏幕,Android中屏幕保持唤醒

    1.锁的类型 PowerManager中各种锁的类型对CPU .屏幕.键盘的影响: PARTIAL_WAKE_LOCK : 保持CPU 运转,屏幕和键盘灯有可能是关闭的. SCREEN_DIM_WAK ...

  4. Android中如何APP视屏如何去除广告

    生死看淡,不服就干! http://www.wjdiankong.cn 目录视图 摘要视图 订阅 微信小程序实战项目--点餐系统 程序员11月书讯,评论得书啦 Get IT技能知识库,50个领域一键直 ...

  5. android最新直播框架,NDK--Android Studio中直播推流框架的搭建

    上次我们搭建了nginx流媒体服务器,接下来就是研究安卓端是如何直播推流到nginx服务器,之前我们了解到视频流和音频流,那么直播也必然绕不开这两个流,手机端的直播可想而知,视频流使用摄像头获取,音频 ...

  6. Android中Vitamio使用解析-电视台直播为例

    先上图,在Android中使用Vitamio播放香港卫视: 第一步,AndroidStudio中导入Vitamio 1 Vitamio源码下载,源码下载下来后,我们将vitamio导入AndroStu ...

  7. 安卓Android中腾讯音视频和直播 API的使用

    安卓Android中腾讯音视频和直播 API的使用 文章目录 安卓Android中腾讯音视频和直播 API的使用 前言:安卓Android中腾讯音视频和直播 API的使用,这里没有写UI,功能是放在一 ...

  8. 搭建直播平台过程中Android端直播APP源码是如何实现连麦功能的?

    直播平台强大的变现能力是大家有目共睹的,很多开发商在搭建直播平台时为了增加用户黏性,纷纷将直播中加入连麦功能. 目前市场上通用的有两种连麦方案:本地混流和云端混流.本地混流即主播和连麦观众分别推一路流 ...

  9. android顶部渐变显示,Android实现直播聊天区域中顶部的渐变效果

    Android实现直播聊天区域中顶部的渐变效果 发布时间:2020-10-15 08:24:18 来源:脚本之家 阅读:102 作者:MG屠夫 背景 在4月份开发直播时,有一个需求,需要实现一个Rec ...

最新文章

  1. Unity 4.x游戏开发技巧集锦(内部资料)
  2. 编写高质量JavaScript代码的基本技巧
  3. 直击微软MIX11 聚焦IE10、Silverlight5、WP7
  4. NFS网络文件共享存储服务器
  5. 【Java并发编程】java并发框架Executor学习笔记
  6. centos7 xampp启动mysql数据库_mysql主从配置,用win xampp和centos7环境下测试
  7. Switch语句的参数是什么类型的?
  8. 操作系统学习(三)-- CPU调度
  9. clickhouse kafka引擎入门
  10. yolov5模型框架详解
  11. 【iOS-iap防护】验证用户付费收据!拒绝iap Cracker!!
  12. GBK/GBK2312字库寻址及使用原理
  13. 摄影——相机的成像原理
  14. 分布式系统的容错性(一)——容错性简介
  15. Fiddler - IOS 开启证书(描述文件与设备管理 / 证书信任设置)
  16. 记一次Windows 无法加载这个硬件的设备驱动程序。驱动程序可能已损坏或不见了。 (代码 39)
  17. 【XJTUSE计算机图形学】第四章 真实感图形学(1)——–颜色视觉
  18. 升级macos beta_如何选择退出macOS开发人员或公开Beta版
  19. 无法使用内置管理员账户打开应用
  20. DockOne微信分享(一三四):国内某大型酒店管理集团基于Kubernetes的实践

热门文章

  1. 终极对决?360报QQ声明为木马
  2. Linux安全基线配置全解析
  3. 实验7 算法讲义7.3投资问题
  4. SQLite数据库安装及简单使用
  5. Aruba与中国电信国际有限公司达成MSP战略合作,剑指海外市场
  6. php gvim,Windows下gvim配置
  7. 操作系统:文件系统的实现
  8. [PyTorch笔记]数据操作
  9. Android LBS地图开发:地球地理GPS坐标系经纬度偏移偏差
  10. 大请大家好啊 啊 啊啊啊 啊啊 啊啊 啊啊 啊