- 1.在项目的gradle文件中增加引用:
allprojects {
repositories {
maven {
url "http://maven.camsgear.com/artifactory/gradle-release-local"
credentials {
username 'YOUR_USERNAME'
password 'YOUR_PASSWORD'
}
}
}
}
- 2.在app 的gradle文件中增加引用:
dependencies {
compile 'com.camsgear.doramediakit:doramediakit:1.0.0'
}
- 3.在AndroidManifest.xml文件中增加权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
- 4.在Activity里面需要加载so库文件:
static {
DoraMediaPlayer.loadLibrariesOnce(null);
DoraMediaPlayer.native_profileBegin("libdoraplayer.so");
}
- 5.在Activity的onDestroy里面需要加:
DoraMediaPlayer.native_profileEnd();
DoraVideoView.java 图片列表接口
- setOptionCategory
- setCalibrationData
- setMediaInfo
- setVideoPath
- initTimeStampView
- isShowTimestamp
- setOnPreparedListener
- setPerspectiveMode
- setMountMode
- setGyroActive
- resetAngle
- start
- release
- stopPlayback
- stopBackgroundPlay
- snapshot
- startRecordFile
- stopRecordFile
- screenShot
设置播放器播放的视频流类别
public void setOptionCategory(PlayerOptionCategory category)
category
- PlayerOptionCategory有四种流类型
{
CATEGORY_NORMAL(一般类型)
CATEGORY_RTSP(RTSP流)
CATEGORY_RTMP(RTMP流)
CATEGORY_P2P(视频流通过P2P)
}
PlayerOptionCategory mPlayerOption = PlayerOptionCategory.CATEGORY_NORMAL;
mDoraVideoView.setOptionCategory(mPlayerOption);
设置标定参数
public void setCalibrationData(String data)
data
- 双鱼眼图片的标定拼接参数
{
GlobalDefine.CALIBRATION_DOUBLE_FISHEYE_265(双鱼眼-H265)
GlobalDefine.CALIBRATION_MONO_FISHEYE()(单鱼眼)
GlobalDefine.CALIBRATION_DOUBLE_FISHEYE(双鱼眼)
}
mDoraVideoView.setCalibrationData(GlobalDefine.CALIBRATION_DOUBLE_FISHEYE_265);
设置媒体参数
public void setMediaInfo(String mediaInfoString)
mediaInfoString
- 设置播放器的媒体参数
{
MediaInfoUtil.getMonoMediaInfoBean()(单鱼眼)
MediaInfoUtil.getDoubleMediaInfoBean()(双鱼眼)
MediaInfoUtil.getNormalMediaInfoBean(非鱼眼)
MediaInfoUtil.getEquirectangularMediaInfoBean()
}
mDoraVideoView.setMediaInfo(MediaInfoUtil.getDoubleMediaInfoBean());
设置视频流url
public void setVideoPath(String path)
path
- 视频流url
String FILE_PATH_H265 = "http://camsgear-demo-resource.oss-cn-hangzhou.aliyuncs.com/h265-test.mp4";
mDoraVideoView.setVideoPath(FILE_PATH_H265);
初始化时间显示控件,在调用显示时间之前,需要调用此方法;
public void initTimeStampView(int gravity)
gravity
- 时间控件显示在视频中的位置
//显示在视频的右上方
mDoraVideoView.initTimeStampView(Gravity.TOP|Gravity.RIGHT);
是否显示时间控件,在调用此方法之前,需要调用initTimeStampView方法;
public void isShowTimestamp(boolean enable)
enable
- 时间控件显示开关
//显示时间控件
mDoraVideoView.isShowTimestamp(true);
播放器准备状态监听器
public void setOnPreparedListener(OnPreparedListener listener)
listener
- OnPreparedListener监听器
mDoraVideoView.setOnPreparedListener(new IMediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(IMediaPlayer mp) {
mDoraVideoView.start();//监听器准备好之后,调用;
//Do something
}
});
设置播放器视图模式
public void setPerspectiveMode(int mode)
mode
- 视图模式
{
PANO_MODE_FISHEYE,
PANO_MODE_LITTLE_PLANET,
PANO_MODE_NORMAL
}
//鱼眼视图模式
mDoraVideoView.setPerspectiveMode(PanoMode.PANO_MODE_FISHEYE);
设置播放器上下倒置模式
public void setMountMode(int mount)
mount
- 倒置模式
{
MOUNT_MODE_DESKTOP,
MOUNT_MODE_WALL,
MOUNT_MODE_CEILING
}
//倒置模式
mDoraVideoView.setMountMode(MountMode.MOUNT_MODE_WALL);
设置陀螺仪开关
public void setGyroActive(boolean isActive)
isActive
- 开关
//打开
mDoraVideoView.setGyroActive(true);
重置视角
public void resetAngle()
mDoraVideoView.resetAngle();
开始播放视频,此方法必须在播放器准备好之后调用
public void start()
mDoraVideoView.start();
释放资源
public void release()
mDoraVideoView.release();
停止播放
public void stopPlayback()
mDoraVideoView.stopPlayback();
停止后台服务播放
public void stopBackgroundPlay()
mDoraVideoView.stopBackgroundPlay();
获取当前视频界面的截图,此方法需要在调用start()之后,出现视频画面之后调用,否则返回空白图片
public Bitmap snapshot()
mDoraVideoView.setOnPreparedListener(new IMediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(IMediaPlayer mp) {
mDoraVideoView.start();
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
mDoraVideoView.snapshot();
}
}).start();
}
});
录制mp4文件到app
public void startRecordFile(String fileName)
fileName
- 要保存的文件完整路径
String path = Environment.getExternalStorageDirectory() + "/" + "Download" + "/";
File folder = new File(path);
if (!folder.exists() && !folder.mkdirs()) {
return;
}
long dataTake = System.currentTimeMillis();
final String name = path + dataTake + ".mp4";
mDoraVideoView.startRecordFile(name);
stop mp4 record
public void stopRecordFile()
mDoraVideoView.stopRecordFile();
录制jpg文件到app
public void screenShot(String fileName)
fileName
- 要保存的文件完整路径
String path = Environment.getExternalStorageDirectory() + "/" + "Download" + "/";
File folder = new File(path);
if (!folder.exists() && !folder.mkdirs()) {
return;
}
long dataTake = System.currentTimeMillis();
final String name = path + dataTake + ".jpg";
mDoraVideoView.screenShot(name);