创建或修改目录:/www/wwwroot/104.219.215.234/data 失败!
本文先容Android播放器SDK进阶功能的使用示例霸凌 拳交,更多功能的救援和使用请参见API讲解。
可选:设立监听器。
设立预加载个数。
添加或移除多个播放源。
设立流露View。
设立TextureView,示举例下:
播放视频源。
添加了一个或多个播放源之后并设立自动播放,调用moveTo便不错自动播放某个视频源。示举例下:
播放上一个、下一个视频。
凭据vid央求PlayAuth信息,央求告捷后再进行MoveTo或MoveToNext等。
可选:使用预渲染实例栽种视频切换的顺畅度。
Android播放器SDK从5.5.2.0版块启动提供getPreRenderPlayer和moveToNextWithPrerendered接口,用于栽种滑动切换到下一个视频播放时的顺畅度,凭据您的SDK集成场景不同,其使用要领有所各别,具体如下:
全新集成5.5.2.0及以后版块
使用PreRenderPlayer来完了。示例代码如下:
从低版块升级至5.5.2.0及以后版块
您需要修改低版块SDK的代码完了,具体如下:
修改渲染View。
低版块的Android播放器SDK全局使用一个渲染View,在每次切换播放源时,先从布局中remove前一个View,再添加下一个View到当前界面上。从5.5.2.0版块启动,救援使用多个渲染View,在RecyclerView.ViewHolder的布局中添增多个View,在切换播放源时,不错预加载下一个播放源,以栽种切换的顺畅度。您需要删除低版块的渲染View的代码,并添加新版块添增多个渲染View的代码,示例代码如下:
修改RecyclerView中的item布局的示例代码如下:
修改切换播放源的逻辑。
从Android播放器SDK 5.5.2.0版块启动,在调用moveToNext时,会增加对preRenderPlayer的调用,因此需要单独对渲染View(Surface)进行设立。其中,moveToNext、moveToPre、moveTo的逻辑有所各别。示例代码如下:
修改AlivcQuickPlayer类的示例代码如下:
可选:修改滑动播放的逻辑。
救援通过修改滑动播放的逻辑,完了在滑动切换视频时,当滑动到下一个视频的一半画面出当前,启动播放下一个视频。通过修改PagerLayoutManager类中的代码完了,即当RecyclerView的item出当今屏幕一半时,切换播放源,示例代码如下:
播放带透明度视频功能简介阿里云播放器SDK救援渲染Alpha通说念,完了播放透明礼物的动态遵守。在直播间等场景中,播放透明礼物动效且不会讳饰直播间实验,彰着栽种用户不雅看和互动体验。
使用规模一体化SDK6.8.0及以后版块或播放器SDK6.9.0及以后版块救援透明渲染才气。
功能上风使用带有透明度信息的MP4视频看成礼物殊效不错提供更好的动效质料,较小的文献体积,更高的兼容性和更高的开发遵守。这使得礼物殊效偶然更好地展示给用户,栽种用户体验。
更好的动效质料:MP4视频不错保留原始的动效质料,包括细节和神思等,比拟于其他口头,如 APN 或IXD,MP4不错更准确地归附瞎想师创作的动效遵守。
较小的文献体积:MP4视频文献比拟于其他口头,如APNG或IXD,不错更有用地压缩文献体积,栽种加载速率并裁汰网罗带宽铺张。
更高的兼容性:MP4视频是一种通用的视频口头,在各式斥地和浏览器中齐得到庸俗救援,救援在主流斥地上播放和不雅看礼物殊效。
更高的开发遵守:使用MP4视频看成礼物殊效的时期决策相对毛糙,不需要开发东说念主员去商议和完了复杂的领悟和渲染逻辑,开发东说念主员不错专注于其他功能的完了,提高开发遵守。
/** * 设立Alpha渲染模式 * * @param alphaRenderMode 镜像模式。见{@link AlphaRenderMode}。 */ /**** * Set a alpha render mode * * @param alphaRenderMode The specified alpha render mode. See {@link AlphaRenderMode}. */ abstract public void setAlphaRenderMode(AlphaRenderMode alphaRenderMode);
//--------------View用法------------- // 关于View需要设立透明 //TextureView TextureView aliplayerView; //用于播放的 view aliplayerView.setOpaque(false); //SurfaceView SurfaceView aliplayerView; //用于播放的 view aliplayerView.getHolder().setFormat(PixelFormat.TRANSLUCENT); aliplayerView.setZOrderOnTop(true); //把SurfaceView置于流露窗口的最顶层 //-----------AliPlayer用法----------- //设立alpha模式 aliplayer.setAlphaRenderMode(IPlayer.AlphaRenderMode.RENDER_MODE_ALPHA_AT_RIGHT); //设立alpha模式对应的素材 UrlSource urlSource = new UrlSource(); urlSource.setUri("https://alivc-player.oss-cn-shanghai.aliyuncs.com/video/业务需求样本/alpha通道/alpha_right.mp4"); aliplayer.setDataSource(urlSource); aliplayer.setOnCompletionListener(new IPlayer.OnCompletionListener() { @Override public void onCompletion() { //可选:单实例播放完成后要是有衔尾问题,不错清屏 aliplayer.clearScreen(); } } aliplayer.setAutoPlay(true); aliplayer.prepare();外挂字幕
Android播放器SDK救援添加和切换外挂字幕,现已救援SRT、SSA、ASS、VTT这4种口头的字幕。
示举例下:
创建流露字幕的View。
凭据不同的字幕口头创建不同的View。
设立字幕经营监听。
添加字幕。
流露或掩盖字幕。
在收到onSubtitleExtAdded回调后,可通过如下要领进行流露或掩盖字幕:
纯音频播放软硬解切换H265自符合播放当前机型包含在云表H265黑名单机型库或者播放H265流硬解失败时,触发自符合左迁。具体的左迁过程为:若已设立H264备流,自动播放H264备流;若未设立H264备流,则自动左迁为H265软解播放。
设立备流示举例下:
// 哄骗层转移一个Map,存储通盘原URL-备URL的键值对,切换时凭据原URL在Map中查询备URL AliPlayerGlobalSettings.setAdaptiveDecoderGetBackupURLCallback(new AliPlayerGlobalSettings.OnGetBackupUrlCallback() { @Override public String getBackupUrlCallback(int oriBizScene, int oriCodecType, String original_url) { String kurl = original_url; if (!H265toH264Map.get(kurl).isEmpty()) { return H265toH264Map.get(kurl); } else { return ""; } } });网罗自符合切换视频了了度截图试看
Android播放器SDK通过相助点播职业建树,不错完了试看功能,救援VidSts和VidAuth(视频点播推选使用此方式)两种播放方式。若何建树和使用试看功能,请参见试看视频。
设立黑名单设立Referer设立UserAgent建树网罗重试时期和次数建树缓存和蔓延限定Android播放器SDK通过PlayerConfig提供了设立缓存和蔓延的限定接口。示举例下:
设立HTTP Header直播RTS左迁切换傍边声说念Android播放器SDK通过player.setOutputAudioChannel要领设立输出声说念,要是输入源是双声说念,则救援通过下述要领切换为左声说念或右声说念;要是输入源是单声说念,则设立无效。
/* OutputAudioChannel.OUTPUT_AUDIO_CHANNEL_LEFT 切换到左声说念播放, OutputAudioChannel.OUTPUT_AUDIO_CHANNEL_RIGHT 切换到右声说念播放, OutputAudioChannel.OUTPUT_AUDIO_CHANNEL_NONE 不切换声说念,保执输入源声说念播放 */ player.setOutputAudioChannel();领悟音频流
设立监听,可获得音视频流数据。音视频弗成是加密流,加密流无法领悟。
设立视频背跋扈Android播放器SDK救援设立播放器渲染的背跋扈。接口和用法讲解如下:
接口示例
/** * 设立视频的背跋扈 * * @param color ARGB * */ /**** * Set video background color * @param color ARGB */ abstract public void setVideoBackgroundColor(int color);
用法讲解
//参数为8位16进制数据,8位数据两两为一组,按照规定分辨暗意A(alpha 透明度) R(red) G(green) B(blue) //举例0x0000ff00,暗意绿色 player.setVideoBackgroundColor(0x0000ff00);vidAuth设立指定播放域名
通过vidAuth方式不错指定vid对应的域名等字段,救援的字段细目请参见GetPlayInfo请求参数。接口及用法讲解如下:
接口示例
/** * 设立播放参数 * * @param playConfig 播放参数 */ public void setPlayConfig(VidPlayerConfigGen playConfig);
用法讲解
通过其中的VidPlayerConfigGen接口的addPlayerConfig添加playDomain字段。
vidAuth = new VidAuth(); VidPlayerConfigGen configGen = new VidPlayerConfigGen(); //增加playDomain字段,不错添加的字段参考 //https://help.aliyun.com/zh/vod/developer-reference/api-vod-2017-03-21-getplayinfo?spm=a2c4g.11186623.0.0.2bec2e44eqeDgx#api-detail-35 configGen.addPlayerConfig("playDomain", "com.xxx.xxx"); vidAuth.setPlayConfig(configGen);性能预渲染
Android播放器SDK救援在起播之前快速渲染第一帧。
示举例下:
很很鲁很很很鲁很很鲁在线视频播放player.setOption(ALLOW_PRE_RENDER, 1);土产货缓存
Android播放器SDK提供了土产货缓存的功能,偶然让用户重叠播放视频时,提高起播速率、提高seek速率、减少卡顿,也能达到检朴流量的盘算。
开启土产货缓存
开启或关闭单个URL的土产货缓存
使用默许缓存旅途
大缓存通过设立数据的最大缓冲区时长不错在播放视频时通过缓存视频数据到内存中,从而提高播放性能和不雅看体验。当最大缓冲区时长设立过大时,会变成缓冲区对内存的铺张。通过启用大缓存,不错将视频数据缓存到文献中,从而裁汰内存的占用,进一步提高播放器性能。
当mMaxBufferDuration设立跨越50000 ms时,通过开启土产货缓存触发大缓存功能自动启用。操作过程如下:
开启全局土产货缓存。
开启URL的土产货缓存。
开启大缓存。
AliPlayerGlobalSettings.enableBufferToLocalCache(true);
预加载Android播放器SDK提供预加载功能,是对土产货缓存功能的升级,通过设立视频缓存的内存占用大小,更能栽种视频的起播速率。
开启土产货缓存功能,详备操作请参见土产货缓存。
获得AliMediaLoader实例。
建树AliMediaLoader。
建树回调,并启动加载。
可选:删除加载文献。
动态预加载动态预加载政策,救援集成方既不错限定当前正在播放视频的缓存,又不错限定预加载的个数虚心存,昂然业务方对播放体验与老本支拨之间取得均衡的诉求。
多码率HLS视频预加载在listPlayer+多码率HLS视频播放场景下,救援集成方预加载与当前播放了了度一致的流,况且不错凭据业务情况聘用预加载模式。
获得下载速率网罗特质HTTPDNSHTTPDNS是通过DNS领悟时期将域名领悟请求发送到特定的HTTPDNS职业器,以获得更快、更通晓的域名领悟收尾,裁汰DNS劫执风险。
阿里云播放器SDK提供增强型HTTPDNS功能,专为阿里云CDN域名提供HTTPDNS职业,救援阿里云CDN网罗精确调度、及时领悟见效,有用提高网罗性能。
增强型HTTPDNS使用示例增强型HTTPDNS仅为阿里云CDN域名提供HTTPDNS职业,请确保您建树的域名为阿里云CDN域名且已完成域名建树可泛泛使用。视频点播中添加和建树CDN域名请参见添加加快域名。更多经营CDN域名的信息请参见阿里云CDN。
//翻开增强型httpdns AliPlayerGlobalSettings.enableEnhancedHttpDns(true); //可选,增加httpdns预领悟域名 DomainProcessor.getInstance().addPreResolveDomain("player.***alicdn.com");HTTP/2 HTTP预建连TCP
针对HTTP的视频播放请求(非HTTPS),通过提前补助TCP引诱偶然权贵改善用户体验,裁汰网罗引诱耗时,确保播放的即时性与连气儿性,同期优化网罗和系统资源的使用遵守。使用方式如下:
// domain口头为host[:port],port可选,用分号(;)离隔多个域名 // 全局设立 // 全量接口每次设立后使用当前的字符串为准(多-新增,少-删除),字符串空为罢手预建连 AliPlayerGlobalSettings.setOption(AliPlayerGlobalSettings.SET_PRE_CONNECT_DOMAIN, "domain1;domain2");视频下载
Android播放器SDK提供了点播职业视频的下载功能,允许用户通过阿里云播放器将视频缓存至土产货不雅看。同期,提供了普通下载和安全下载两种下载方式。
普通下载
下载后的视频数据未经过阿里云加密,用户不错用第三方播放器播放。
安全下载
下载后的视频数据经过阿里云加密。第三方播放器无法播放。仅救援使用阿里云的播放器进行播放。
使用讲解仅VidSts和VidAuth方式救援视频下载功能。
使用播放器的视频下载功能,需要在点播限定台开启并建树下载模式,详备操作请参见离线下载。
视频下载救援断点续传。
操作才略可选:建树安全下载的加密校验文献。仅安全下载需要建树,普通下载无需建树。
要是设立为安全下载方式,则需要将在点播限定台生成的密钥文献建树到播放器SDK中,用于视频下载和播放的解密考据,密钥文献的生成请参见开启安全下载。
漠视在Application中建树一次即可,示举例下:
PrivateService.initService(getApplicationContext(), "encryptedApp.dat方位的文献旅途"); //漠视将encryptedApp.dat加密校验文献存放得手机中后,此处设立加密校验文献的手机土产货文献旅途
创建并设立下载器。
设立监听事件。
下载器提供了多个事件监听。示举例下:
准备下载源。
准备告捷后,聘用下载项并启动下载。
(可选)更新下载源。
下载告捷或失败后,开释下载器。
可选:删除下载的文献。
后续操作下载的视频不错使用阿里云播放器进行播放。具体要领如下:
下载完成后获得视频文献的完全旅途。
通过点播UrlSource方式设立完全旅途进行播放。
视频加密播放点播视频救援HLS圭表加密、阿里云特有加密和DRM加密,直播视频仅救援DRM加密。加密播放请参见视频加密播放。
Native RTS播放Android播放器SDK集成Native RTS SDK完了Native端低延时直播功能,细目请参见阿里云播放器SDK集成Native RTS SDK完了讲解(Android端)。
荒谬措置使用阿里云播放器播放视频发生荒谬时,可借助单点探查功能快速定位问题,详备实验,请参见单点追查。
经营文档API讲解
伪善码查询
Android播放器常见问题