autojs之小白带你一步一步定制播放器
效果展示
播放器功能
- 截图
- 倍速播放
- 指定区域播放
- 开始, 停止, 暂停
- 播放电视cctv-1 cctv6
- 播放网络视频
- 播放本地视频
原理
atuojs调用七牛云直播sdk, 快速制作自己的播放器
七牛直播云官方文档
https://developer.qiniu.com/pili/1210/the-android-client-sdk\
PLDroidPlayer简介
PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单、快捷的接口,帮助开发者在 Android 平台上快速开发播放器应用。
步骤
界面
"ui"; ui.layout(<vertical></vertical>);
查看七牛云官方文档, 看看他们的sdk有什么功能
- 主流架构支持, 包括 arm64-v8a, armeabi-v7a 与 x86
- 后台播放, 退到后台只播放音频
- IP 地址播放, URL 格式:protocol://ip/path?domain=xxxx.com
- 设置播放封面, 在播放开始前显示封面 view
- …
- 以上这些都不是核心功能
核心功能
- 播放视频
- 播放按钮
- 停止按钮
- 暂停按钮
- 倍速按钮
- 截图
- 暂时先实现以上功能, 其他功能可参考文档自行添加
修改ui
文档中对PLMediaPlayer的介绍
PLDroidPlayer SDK 提供的
PLMediaPlayer
实现了一个媒体播放器的各种基础功能和接口,与 Android 官方的MediaPlayer
的设计基本保持一致。PLMediaPlayer
不是一个View
控件,因此,如果希望用它播放视频而不是纯音频的话,则需要在布局文件中自己定义一个SurfaceView
或者TextureView
控件,然后将Surface
或者SurfaceHolder
传递给PLMediaPlayer
所以我们要添加一个surfaceView, 以及几个控制按钮
ui.layout(<vertical gravity="center"><vertical bg="#000000"><horizontal><button id="start">start</button><button id="stop">stop</button><button id="pause">pause</button></horizontal><horizontal><button id="slower">slower</button><button id="normal">normal</button><button id="faster">faster</button></horizontal><horizontal><button id="captureImage">captureImage</button></horizontal><texttext="作者: 牙叔"margin="10"textSize="38sp"textStyle="bold"gravity="center"textColor="#ddffffff"></text></vertical><frame android:layout_width="wrap_content" android:layout_height="wrap_content" bg="#ff00ff"><android.view.SurfaceView android:id="surfaceView" android:layout_gravity="center" /></frame></vertical> );
创建PLMediaPlayer实例
PLMediaPlayer mMediaPlayer = new PLMediaPlayer(mContext, mAVOptions);
PLMediaPlayer这个类从哪里来?
这个就是SDK, 包括两部分
- java类, 由adnroid studio 生成dex, dex中有我们需要的java类
- so, 官方仓库的releases文件夹中有
- libqcOpenSSL.so
- libQPlayer.so
加载类
let dexPath = "./classes_merge.dex"; runtime.loadDex(dexPath); importClass(com.pili.pldroid.player.PLMediaPlayer); importClass(com.pili.pldroid.player.PLOnCompletionListener); importClass(com.pili.pldroid.player.PLOnErrorListener); ...
加载so
copyJniLibs();
创建PLMediaPlayer实例
mMediaPlayer = new PLMediaPlayer(activity, getAVOptions());
AVOptions
PLDroidPlayer SDK 提供的
AVOptions
类,可以用来配置播放参数function getAVOptions() {mAVOptions = new AVOptions();// 超时mAVOptions.setInteger(AVOptions.KEY_PREPARE_TIMEOUT, 10 * 1000);...return mAVOptions; }
将
SurfaceHolder
传递给PLMediaPlayer
mMediaPlayer.setDisplay(mSurfaceView.getHolder());
网上找一个直播地址cctv-6, 看着好像差不多了, 试着播放一下
mMediaPlayer.setDataSource(mVideoPath); mMediaPlayer.prepareAsync(); setTimeout(function () {mMediaPlayer.start(); }, 3000);
完美播放视频
以上就是最autojs使用七牛云SDK最简单的代码, 实际上你可能对音视频有更多的控制需求,
不过demo跑通了, 添加其他功能, 问题都不大
播放视频代码仅仅150行, 相信你一定看的懂
微信公众号 AutoJsPro教程
QQ群
747748653
完整源码
点击查看
autojs之小白带你一步一步定制播放器相关推荐
- 100个vc小项目开发:二、一步一点设计音乐播放器 [I]
100个vc小项目开发:二.一步一点设计音乐播放器 [源码解读] 文章作者: July 软件来源:开源 ================== 1.有不正之处,恳请指正. 2.本文贴出的是关键实现代码部 ...
- 微信小应用,又一大神,音乐播放器
2019独角兽企业重金招聘Python工程师标准>>> 下载:http://www.see-source.com/weixinwidget/list.html 微信小应用,又一大神, ...
- 简单几步实现网络音乐播放器(Python爬虫版百度FM)
Python入门之爬取百度音乐 先说一下为什么会有这篇文章,首先肯定是有这个需求了,本人出差在外地,这里的网速卡到爆,根本支撑不了在线听歌的要求,所以就想下载到本地来慢慢听.这可是python的绝活, ...
- 小D学blend-----优美简洁的mp3播放器
运行环境:blend 4.0或者visual studio 2010(silverlgiht开发环境需要安装好) 本例实现了mp3的一些基本功能:如播放.暂停.停止.循环播放.静音.调节音量等! 下面 ...
- 一步一步实战HTML音乐播放器
在这里我用HTML5从头开始一步一步来制作一个简约的音乐播放器,大家可以参考一下,接下来正式开始. 音乐播放器效果 播放器分析 这里将播放器分两块来做: 视图层(html + css) 逻辑层 ( j ...
- 简单几步实现网络音乐播放器(Qt版百度FM)
百度FM音乐Qt版本 很久之前写的软件了,一直没有总结,也懒得继续开发了,这里简单总结一下,也算是对自己的努力一个交代吧. 先来个ubunt ...
- Vue快速入门(附实战小项目:记事本、天气预报、音乐播放器)
文章目录 一.前言 二.Vue.js安装 三.初始化Vue项目 四.项目目录解析 五.Vue核心指令 1.插值表达式 2.v-text 3.v-html 4.v-on 5.计数器实战 6.v-show ...
- 简单应用MySQL的音乐播放器小项目
前言 本文是我学MySQL后,做的一个小项目,因为初学,没有做的很高大上,代码方面也一般般,但是总归是自己做的,还是有点小小成就感的,在这里和大家分享下,喜欢的点个赞,一起冲冲冲. 这个项目主要是想锻 ...
- 12_微信小程序之微信视频号滚动自动播放视频效果实现
12_微信小程序之微信视频号滚动自动播放视频效果实现 一.获取视频的分辨率.时长.缩略图 微信小程序提供了三种方式可以获取视频的分辨率.时长: wx.getVideoInfo(Object) :只能用 ...
最新文章
- Java 中这个叫 Future 的东东,你用过嘛?
- mac python3.8怎样安装scrapy_Python爬虫与mac下Scrapy配置
- Hibernate基础学习2
- OpenCV统计米粒数目-计算联通区域的个数及联通区域内像素的个数
- 微服务网关实现用户访问权限识别拦截
- java上传视频到七牛云_Java进阶学习:将文件上传到七牛云中
- spring cloud bus_Spring Cloud学习笔记--消息总线(Bus)
- 聊天宝解散,多闪、马桶MT还会远吗?
- linux 防火墙检查
- Iframe的基础应用——关于Iframe刷页问题的两种方法
- 海康ehome协议分析(4):GPS上传
- 正向随机微分方程的经典数值格式模拟
- 条件概率和正则概率(完)
- SourceTree拉取代码出现错误
- 高中数学一轮复习逆袭必要学习方法
- 波束管理(Beam Management)
- deepin安装tftp服务器_Win10频发蓝屏,深度Deepin系统,调试华为AC和AP
- Cache简介(一)
- 【读书笔记】概率图模型——基于R语言(一)
- 泛泰binx和ota升级包下载工具Android版[2013.6.7提供源代码]