未验证 提交 6a8844f2 编写于 作者: O openharmony_ci 提交者: Gitee

!15843 挑单monthly,资料示例代码增加fdSrc方式初始化资源文件示例

Merge pull request !15843 from zengyawen/cherry-pick-1678430430
......@@ -299,13 +299,13 @@ export class AVPlayerDemo {
async avPlayerDemo() {
// 创建avPlayer实例对象
this.avPlayer = await media.createAVPlayer()
let fdPath = 'fd://'
let pathDir = "/data/storage/el2/base/haps/entry/files" // pathDir在FA模型和Stage模型的获取方式不同,请参考开发步骤首行的说明,根据实际情况自行获取。
// path路径的码流可通过"hdc file send D:\xxx\H264_AAC.mp4 /data/app/el2/100/base/ohos.acts.multimedia.media.avplayer/haps/entry/files" 命令,将其推送到设备上
let path = pathDir + '/H264_AAC.mp4'
let file = await fs.open(path)
fdPath = fdPath + '' + file.fd
this.avPlayer.url = fdPath
let fileDescriptor = undefined
// 使用资源管理模块的getRawFileDescriptor获取集成在应用中的媒体资源,并使用AVPlayer的fdSrc属性完成媒体资源初始化
// 其中的参数fd/offset/length定义请查看媒体API文档,globalThis.abilityContext参数为系统环境变量,在系统启动时在主界面保存为全局变量
await globalThis.abilityContext.resourceManager.getRawFileDescriptor('H264_AAC.mp4').then((value) => {
fileDescriptor = {fd: value.fd, offset: value.offset, length: value.length}
})
this.avPlayer.fdSrc = fileDescriptor
}
}
```
......
......@@ -925,6 +925,14 @@ getTrackDescription(callback: AsyncCallback\<Array\<MediaDescription>>): void
**示例:**
```js
printfDescription(obj) {
for (let item in obj) {
let property = obj[item];
console.info('audio key is ' + item);
console.info('audio value is ' + property);
}
}
avPlayer.getTrackDescription((error, arrList) => {
if ((arrList) != null) {
for (let i = 0; i < arrList.length; i++) {
......@@ -962,6 +970,14 @@ getTrackDescription(): Promise\<Array\<MediaDescription>>
```js
let arrayDescription;
printfDescription(obj) {
for (let item in obj) {
let property = obj[item];
console.info('audio key is ' + item);
console.info('audio value is ' + property);
}
}
avPlayer.getTrackDescription().then((arrList) => {
if (arrList != null) {
arrayDescription = arrList;
......@@ -1058,7 +1074,7 @@ setSpeed(speed: PlaybackSpeed): void
**示例:**
```js
avPlayer.setSpeed(media.AVPlayerSpeed.SPEED_FORWARD_2_00_X)
avPlayer.setSpeed(media.PlaybackSpeed.SPEED_FORWARD_2_00_X)
```
### on('speedDone')<sup>9+</sup><a name = speedDone_on></a>
......@@ -1551,6 +1567,8 @@ on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void
**示例:**
```js
import audio from '@ohos.multimedia.audio';
avPlayer.on('audioInterrupt', (info: audio.InterruptEvent) => {
console.info('audioInterrupt success,and InterruptEvent info is:' + info)
})
......@@ -1740,7 +1758,7 @@ let AVRecorderConfig = {
location : { latitude : 30, longitude : 130 }
}
AVRecorder.prepare(AVRecorderConfig, (err) => {
avRecorder.prepare(AVRecorderConfig, (err) => {
if (err == null) {
console.info('prepare success');
} else {
......@@ -1811,7 +1829,7 @@ let AVRecorderConfig = {
location : { latitude : 30, longitude : 130 }
}
AVRecorder.prepare(AVRecorderConfig).then(() => {
avRecorder.prepare(AVRecorderConfig).then(() => {
console.info('prepare success');
}).catch((err) => {
console.info('prepare failed and catch error is ' + err.message);
......@@ -1852,7 +1870,7 @@ getInputSurface(callback: AsyncCallback\<string>): void
```js
let surfaceID = null; // 该surfaceID用于传递给相机接口创造videoOutput
AVRecorder.getInputSurface((err, surfaceId) => {
avRecorder.getInputSurface((err, surfaceId) => {
if (err == null) {
console.info('getInputSurface success');
surfaceID = surfaceId;
......@@ -1861,8 +1879,6 @@ AVRecorder.getInputSurface((err, surfaceId) => {
}
});
// videoOutput = await cameraManager.createVideoOutput(videoProfiles[0], surfaceID);
```
### getInputSurface<sup>9+</sup>
......@@ -1898,14 +1914,12 @@ getInputSurface(): Promise\<string>
```js
let surfaceID = null; // 该surfaceID用于传递给相机接口创造videoOutput
AVRecorder.getInputSurface().then((surfaceId) => {
avRecorder.getInputSurface().then((surfaceId) => {
console.info('getInputSurface success');
surfaceID = surfaceId;
}).catch((err) => {
console.info('getInputSurface failed and catch error is ' + err.message);
});
// videoOutput = await cameraManager.createVideoOutput(videoProfiles[0], surfaceID);
```
### start<sup>9+</sup><a name=avrecorder_start></a>
......@@ -1937,7 +1951,7 @@ start(callback: AsyncCallback\<void>): void
**示例:**
```js
AVRecorder.start((err) => {
avRecorder.start((err) => {
if (err == null) {
console.info('start AVRecorder success');
} else {
......@@ -1975,7 +1989,7 @@ start(): Promise\<void>
**示例:**
```js
AVRecorder.start().then(() => {
avRecorder.start().then(() => {
console.info('start AVRecorder success');
}).catch((err) => {
console.info('start AVRecorder failed and catch error is ' + err.message);
......@@ -2011,7 +2025,7 @@ pause(callback: AsyncCallback\<void>): void
**示例:**
```js
AVRecorder.pause((err) => {
avRecorder.pause((err) => {
if (err == null) {
console.info('pause AVRecorder success');
} else {
......@@ -2049,7 +2063,7 @@ pause(): Promise\<void>
**示例:**
```js
AVRecorder.pause().then(() => {
avRecorder.pause().then(() => {
console.info('pause AVRecorder success');
}).catch((err) => {
console.info('pause AVRecorder failed and catch error is ' + err.message);
......@@ -2085,7 +2099,7 @@ resume(callback: AsyncCallback\<void>): void
**示例:**
```js
AVRecorder.resume((err) => {
avRecorder.resume((err) => {
if (err == null) {
console.info('resume AVRecorder success');
} else {
......@@ -2123,7 +2137,7 @@ resume(): Promise\<void>
**示例:**
```js
AVRecorder.resume().then(() => {
avRecorder.resume().then(() => {
console.info('resume AVRecorder success');
}).catch((err) => {
console.info('resume AVRecorder failed and catch error is ' + err.message);
......@@ -2161,7 +2175,7 @@ stop(callback: AsyncCallback\<void>): void
**示例:**
```js
AVRecorder.stop((err) => {
avRecorder.stop((err) => {
if (err == null) {
console.info('stop AVRecorder success');
} else {
......@@ -2201,7 +2215,7 @@ stop(): Promise\<void>
**示例:**
```js
AVRecorder.stop().then(() => {
avRecorder.stop().then(() => {
console.info('stop AVRecorder success');
}).catch((err) => {
console.info('stop AVRecorder failed and catch error is ' + err.message);
......@@ -2236,7 +2250,7 @@ reset(callback: AsyncCallback\<void>): void
**示例:**
```js
AVRecorder.reset((err) => {
avRecorder.reset((err) => {
if (err == null) {
console.info('reset AVRecorder success');
} else {
......@@ -2273,7 +2287,7 @@ reset(): Promise\<void>
**示例:**
```js
AVRecorder.reset().then(() => {
avRecorder.reset().then(() => {
console.info('reset AVRecorder success');
}).catch((err) => {
console.info('reset AVRecorder failed and catch error is ' + err.message);
......@@ -2307,7 +2321,7 @@ release(callback: AsyncCallback\<void>): void
**示例:**
```js
AVRecorder.release((err) => {
avRecorder.release((err) => {
if (err == null) {
console.info('release AVRecorder success');
} else {
......@@ -2343,7 +2357,7 @@ release(): Promise\<void>
**示例:**
```js
AVRecorder.release().then(() => {
avRecorder.release().then(() => {
console.info('release AVRecorder success');
}).catch((err) => {
console.info('release AVRecorder failed and catch error is ' + err.message);
......@@ -2368,9 +2382,8 @@ on(type: 'stateChange', callback: (state: AVRecorderState, reason: StateChangeRe
**示例:**
```js
AVRecorder.on('stateChange', async (state, reason) => {
avRecorder.on('stateChange', async (state, reason) => {
console.info('case state has changed, new state is :' + state + ',and new reason is : ' + reason);
}
});
```
......@@ -2391,7 +2404,7 @@ off(type: 'stateChange'): void
**示例:**
```js
AVRecorder.off('stateChange');
avRecorder.off('stateChange');
```
### on('error')<sup>9+</sup><a name=avrecorder_onerror></a>
......@@ -2423,7 +2436,7 @@ on(type: 'error', callback: ErrorCallback): void
**示例:**
```js
AVRecorder.on('error', (err) => {
avRecorder.on('error', (err) => {
console.info('case avRecorder.on(error) called, errMessage is ' + err.message);
});
```
......@@ -2454,7 +2467,7 @@ off(type: 'error'): void
**示例:**
```js
AVRecorder.off('error');
avRecorder.off('error');
```
## AVRecorderState<sup>9+</sup>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册