移动SDK

最近更新时间:2019-02-25 18:00:35

移动SDK

产品简介

KSYMediaPlayer是金山云播放内核官方推出的iOS/Android平台上使用的软件开发工具包(SDK),为开发者提供简单、快捷的接口,帮助开发者实现各平台上的多媒体播放应用。

功能介绍

金山云播放SDK,金山云移动播放SDK,支持HTTP-FLV/HLS/HTTPS协议、点播续播、Seek、画面旋转等功能,具体可见:iOS播放& Android播放

具体功能及描述如下:
  • 支持软硬解:更低的CPU占用及发热量
  • 视频解码:支持H.264/H.265(软),多种profile level支持
  • 音频解码:支持AAC、MP4等多种音频编码
  • 反交错:开启反交错此功能可以有效缓解画面发虚问题
  • 点播续播:续播可实现从指定位置开始播放的功能
  • 循环播放:支持循环播放一个点播视频
  • 画面旋转:支持0度,90度,180度和270度
  • 重连功能:reload功能可以实现在不销毁播放器的情况下,重新启动拉流
  • 静音:即在播放过程中,关闭声音
  • 调节音量:播放时调节播放器的音量,不影响其它app和系统音量
  • 截图:截取任何时刻的视频图像
  • Seek功能:支持iOS跳转&Android跳转功能
  • 后台音频播放:在观看直播过程中,将直播APP切换至后台等操作后,还能正常播放音频
  • 单实例重复播放:支持使用一个实例进行多次播放,不需要在每次播放都创建新的播放器实例
  • 视频缩放:视频画面的显示模式,如无缩放、同比适配、满屏填充等效果
  • 探测视频信息功能:无需启动播放即可得到文件的音视频信息描述,如文件封装格式、视频编码格式、视频宽高、音频编码格式、采样率、声道数等信息
  • 获取文件缩略图:可用一个图片来表达这个视频中的所有内容,可设定输出缩略图的宽高以及所需具体时间点的iOS缩略图&Android缩略图

开发指南

使用对象

  • 面向所有使用该SDK的开发人员, 测试人员等
  • 要求读者具有一定的iOS/Android编程开发经验

系统要求

平台 最低版本 CPU架构
iOS播放 iOS7.0 armv7/arm64以及虚拟机运行
Android播放 Android2.3 armv5/armv7a/arm64/x86/x86_64

工程下载

iOS播放

本SDK提供如下三种获取方式:

  • 从github下载
  • 从oschina下载
  • 使用Cocoapods安装

更新日志查看地址:https://github.com/ksvc/KSYMediaPlayer_iOS/releases;

1、github下载

从github下载:https://github.com/ksvc/KSYMediaPlayer_iOS;

$ git clone https://github.com/ksvc/KSYMediaPlayer_iOS.git --depth 1

如果获取到zip格式的压缩包,解压缩后,包含demo、doc、framework、README.md四个部分, 目录结构如下所示:

  • domo/ 目录存放KSYPlayerDemo,双击打开KSYPlayerDemo.xcodeproj即可使用iOS示例工程,用于帮助开发都快速了解如何使用SDK。
  • doc/ 目录存放接口参考文档,双击打开html/index.html即可看到相关appledoc风格的接口说明,也可以查看在线版
  • framework/ 目录存放了KSYMediaPlayer.framework,该库支持armv7/arm64/x86_64和i386四种体系结构。
  • README.md 即本文档。

2、oschina下载

从oschina下载:http://git.oschina.net/ksvc/KSYMediaPlayer_iOS 对于部分地方访问github比较慢的情况,可以从oschina clone,获取的库内容和github一致。

$ git clone https://git.oschina.net/ksvc/KSYMediaPlayer_iOS.git --depth 1

3、Cocoapods安装

  • pod私有库下载

通过Cocoapods能将静态库framework下载到本地,只需要将如下语句加入你的Podfile:

pod 'KSYMediaPlayer_iOS', :git => 'https://github.com/ksvc/KSYMediaPlayer_iOS.git'

执行pod install或者pod update后,将SDK加入工程。

  • pod官方库下载

配置Podfile:

pod 'KSYMediaPlayer_iOS'
Android播放

1、github下载

从github下载:https://github.com/ksvc/KSYMediaPlayer_Android.git 解压缩后包含 demo、doc、README.md、libs四个部分, 解压后的目录结构如下所示:

  • KsyunPlayerDemo/ 目录存放KSY Android Player Demo,用于帮助开发人员快速了解如何使用SDK。
  • doc/ 目录存放接口参考文档。
  • libs_vod/ 目录包括点播so库,现提供了Android全部体系结构的支持。
  • README.md 即本文档。

直播库与点播库的区别可见链接

2、oschina下载

从oschina下载:http://git.oschina.net/ksvc/KSYMediaPlayer_Android 对于部分地方访问github比较慢的情况,可以从oschina clone,获取的库内容和github一致。

$ git clone https://git.oschina.net/ksvc/KSYMediaPlayer_Android.git

集成步骤

iOS播放

1、点播库

点播静态库位于:framework/vod ,vod库包括live库所有功能; 点播动态库位于:framework/vod_dy ,vod库包括live库所有功能。

2、集成framework

将金山云SDK解压后,将framework目录下KSYMediaPlayer.framework复制到项目下,选择需要集成的target,在target->Build Phases->Link Binary With Libraries下,将KSYMediaPlayer.framework添加进去,然后添加另外四个系统库:

  • VideoToolbox.framework
  • libstdc++.6.tbd或者libstdc++.6.dylib
  • libbz2.tbd或者libbz2.dylib
  • libz.tbd或者libz.dylib

移动SDK

3、调用

打开需要集成播放视频功能的视图源码,把如下代码复制并粘贴到你将播放视频的位置,例如到播放/停止按钮的方法中。

  • 导入头文件
    #import <KSYMediaPlayer/KSYMediaPlayer.h>
  • 初始化player

初始化需要几个步骤: 准备需要视频播放的UIView; 新建player; 设置url; 调用prepareToPlay开始播放。

由于已经设置shouldAutoplay为TRUE,则prepare完成后立即开始播放。

KSYMoviePlayerController *_player;
UIView *videoView;
_videoView = [[UIView alloc] init];
_videoView.frame = CGRectMake( 0, 0,  self.view.bounds.size.width,  self.view.bounds.size.height);
_videoView.backgroundColor = [UIColor lightGrayColor];
_player = [[KSYMoviePlayerController alloc] initWithContentURL: [NSURL URLWithString:@"http://121.42.58.232:8980/hls_test/1.m3u8"]];
_player.controlStyle = MPMovieControlStyleNone;
[_player.view setFrame: _videoView.bounds];  // player's frame must match parent's
[_videoView addSubview: _player.view];
_videoView.autoresizesSubviews = TRUE;
_player.view.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
_player.shouldAutoplay = TRUE;
_player.scalingMode = MPMovieScalingModeAspectFit;
[_player prepareToPlay];

4、设置监听

当前提供了多个Notificaton监听, 具体可参考消息通知

5、销毁播放器

播放器在stop中完成内存释放,new一次KSYMoviePlayerController,需要stop一次。如果两者未配对调用,将引发内存泄露。

[_player stop]
Android播放

1、工程目录结构

SDK提供了直播库与点播库,其区别可查看如下链接https://github.com/ksvc/KSYMediaPlayer_Android/wiki/LiveAndVod 直播库与点播库下的jar包并无区别

  • KsyunPlayerDemo: 播放SDK的demo工程
  • doc: 接口文档
  • libs_vod: 点播库
    • libs_vod/[armeabi/armeabi-v7a/arm64-v8a/x86/x86_64]: 各平台的动态库
    • libs_vod/libksyplayer.jar: 播放SDK的jar包
    • libs_vod/libksystat.jar: 金山云统计模块

2、配置工程

首先需将SDK的资源引入至开发工程中,目标路径如下:

{project_path}/libs/libksyplayer.jar 
{project_path}/libs/libksystat.jar
{project_path}/libs/armeabi-v7a/libksyplayer.so
{project_path}/libs/arm64-v8a/libksyplayer.so
{project_path}/libs/x86/libksyplayer.so

armv7a的库可在arm64的架构下运行,用户可考虑只使用armv7a的库,且能减小APK的大小

如若只使用armv7a的库,则不能有文件夹:arm64-v8a

3、配置gradle(可选)

此节内容适合使用Android Studio作为开发环境的用户。 在引入SDK的资源后,须在工程的build.gradle中添加如下内容:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile fileTree(include: '*/so', dir: 'libs/armeabi-v7a')
    compile fileTree(include: '*/so', dir: 'libs/arm64-v8a')
    compile fileTree(include: '*/so', dir: 'libs/x86')
}

4、混淆

请不要混淆SDK提供的jar包,在混淆配置中可添加如下语句

-keep class com.ksyun.media.player.**{ *; }
-keep class com.ksy.statlibrary.**{ *;}

5、系统权限

在您开始开发前,需要在您AndroidManifest.xml里添加如下权限,如若没有添加相应的权限,则会出现播放错误

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

金山云,开启您的云计算之旅

免费注册