# MediaPlayer-Extended
**Repository Path**: chinasoft5_ohos/MediaPlayer-Extended
## Basic Information
- **Project Name**: MediaPlayer-Extended
- **Description**: 1.支持对帧的精确查找
2.支持回放速度调整
3.支持所有ohos网络协议和媒体格式
4.支持本地文件和网络源
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-12-21
- **Last Updated**: 2023-08-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
MediaPlayer-Extended
====================
### 项目介绍
+ 项目名称:MediaPlayer-Extended
+ 所属系列:openharmony的第三方组件适配移植
+ 功能:本地与网络视频、音频播放。
+ 项目移植状态:主功能完成
+ 调用差异:未实现功能(1.Dash流播放 , 2.设置SeekMode)
+ 开发版本:sdk7,DevEco Studio3.0 Beta1
+ 基线版本: Release v4.4.1
### 效果演示

### 安装教程
**1)** 在项目根目录下的build.gradle文件中,
```
allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/releases/'
}
}
}
```
**2)** 在entry模块的build.gradle文件中,
```
dependencies {
implementation('com.gitee.chinasoft_ohos:mediaplayer:1.0.0')
......
}
```
在sdk7,DevEco Studio3.0 Beta1下项目可直接运行 如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下
### 使用说明
xml中引入VideoView与SimplePlayerController
```xml
```
设置VideoView
```java
mVideoView = (VideoView) findComponentById(ResourceTable.Id_play_surface);
mMediaController = (SimplePlayerController) findComponentById(ResourceTable.Id_controller);
mMediaController.setMediaPlayer(mVideoView);
try {
Source source;
if (mVideoUri.getScheme().equals("dataability")) {
DataAbilityHelper helper = DataAbilityHelper.creator(getContext());
FileDescriptor fd = helper.openFile(mVideoUri, "r");
source = new Source(fd);
} else {
source = new Source(mVideoUri.toString());
}
mVideoView.setVideoSource(source);
mVideoView.seekTo(mVideoPosition);
mVideoView.setPlaybackSpeed(mVideoPlaybackSpeed);
if (mVideoPlaying) {
mVideoView.start();
}
} catch (DataAbilityRemoteException | FileNotFoundException e) {
e.printStackTrace();
}
```
控制播放
```java
mVideoView.seekTo(1000);
mVideoView.setPlaybackSpeed(2.0f);
mVideoView.start();
mVideoView.stopPlayback();
mVideoView.pause();
mVideoView.release();
```
附视频测试地址:
````
https://sample-videos.com/video123/3gp/240/big_buck_bunny_240p_1mb.3gp
https://dash.akamaized.net/akamai/bbb/bbb_320x180_59.94fps_300k.mp4
https://dash.akamaized.net/akamai/ad-content/raw/102015_Akamai_ADScaler_Refresh_FV_H264_1920x1080.mov
https://dash.akamaized.net/akamai/bbb/bbb_320x180_59.94fps_300k.mp4
https://sample-videos.com/video123/mkv/720/big_buck_bunny_720p_1mb.mkv
````
### 测试信息
CodeCheck代码测试无异常
CloudTest代码测试无异常
病毒安全检测通过
当前版本demo功能与原组件基本无差异
### 版本迭代
- 1.0.0
### 版权和许可信息
````
Copyright (C) 2014, 2015, 2016, 2017, 2018, 2020 Mario Guggenberger mg@protyposis.net. Released under the Apache 2.0 license. See LICENSE for details.
````