未验证 提交 3e649292 编写于 作者: O openharmony_ci 提交者: Gitee

!15463 资料示例代码增加fdSrc方式初始化资源文件示例

Merge pull request !15463 from FULIZHONG/0303docs
...@@ -299,13 +299,13 @@ export class AVPlayerDemo { ...@@ -299,13 +299,13 @@ export class AVPlayerDemo {
async avPlayerDemo() { async avPlayerDemo() {
// 创建avPlayer实例对象 // 创建avPlayer实例对象
this.avPlayer = await media.createAVPlayer() this.avPlayer = await media.createAVPlayer()
let fdPath = 'fd://' let fileDescriptor = undefined
let pathDir = "/data/storage/el2/base/haps/entry/files" // pathDir在FA模型和Stage模型的获取方式不同,请参考开发步骤首行的说明,根据实际情况自行获取。 // 使用资源管理模块的getRawFileDescriptor获取集成在应用中的媒体资源,并使用AVPlayer的fdSrc属性完成媒体资源初始化
// path路径的码流可通过"hdc file send D:\xxx\H264_AAC.mp4 /data/app/el2/100/base/ohos.acts.multimedia.media.avplayer/haps/entry/files" 命令,将其推送到设备上 // 其中的参数fd/offset/length定义请查看媒体API文档,globalThis.abilityContext参数为系统环境变量,在系统启动时在主界面保存为全局变量
let path = pathDir + '/H264_AAC.mp4' await globalThis.abilityContext.resourceManager.getRawFileDescriptor('H264_AAC.mp4').then((value) => {
let file = await fs.open(path) fileDescriptor = {fd: value.fd, offset: value.offset, length: value.length}
fdPath = fdPath + '' + file.fd })
this.avPlayer.url = fdPath this.avPlayer.fdSrc = fileDescriptor
} }
} }
``` ```
......
...@@ -931,6 +931,14 @@ getTrackDescription(callback: AsyncCallback\<Array\<MediaDescription>>): void ...@@ -931,6 +931,14 @@ getTrackDescription(callback: AsyncCallback\<Array\<MediaDescription>>): void
**示例:** **示例:**
```js ```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) => { avPlayer.getTrackDescription((error, arrList) => {
if ((arrList) != null) { if ((arrList) != null) {
for (let i = 0; i < arrList.length; i++) { for (let i = 0; i < arrList.length; i++) {
...@@ -968,6 +976,14 @@ getTrackDescription(): Promise\<Array\<MediaDescription>> ...@@ -968,6 +976,14 @@ getTrackDescription(): Promise\<Array\<MediaDescription>>
```js ```js
let arrayDescription; 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) => { avPlayer.getTrackDescription().then((arrList) => {
if (arrList != null) { if (arrList != null) {
arrayDescription = arrList; arrayDescription = arrList;
...@@ -1557,6 +1573,8 @@ on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void ...@@ -1557,6 +1573,8 @@ on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void
**示例:** **示例:**
```js ```js
import audio from '@ohos.multimedia.audio';
avPlayer.on('audioInterrupt', (info: audio.InterruptEvent) => { avPlayer.on('audioInterrupt', (info: audio.InterruptEvent) => {
console.info('audioInterrupt success,and InterruptEvent info is:' + info) console.info('audioInterrupt success,and InterruptEvent info is:' + info)
}) })
...@@ -1758,7 +1776,7 @@ let AVRecorderConfig = { ...@@ -1758,7 +1776,7 @@ let AVRecorderConfig = {
location : { latitude : 30, longitude : 130 } location : { latitude : 30, longitude : 130 }
} }
AVRecorder.prepare(AVRecorderConfig, (err) => { avRecorder.prepare(AVRecorderConfig, (err) => {
if (err == null) { if (err == null) {
console.info('prepare success'); console.info('prepare success');
} else { } else {
...@@ -1829,7 +1847,7 @@ let AVRecorderConfig = { ...@@ -1829,7 +1847,7 @@ let AVRecorderConfig = {
location : { latitude : 30, longitude : 130 } location : { latitude : 30, longitude : 130 }
} }
AVRecorder.prepare(AVRecorderConfig).then(() => { avRecorder.prepare(AVRecorderConfig).then(() => {
console.info('prepare success'); console.info('prepare success');
}).catch((err) => { }).catch((err) => {
console.info('prepare failed and catch error is ' + err.message); console.info('prepare failed and catch error is ' + err.message);
...@@ -1870,7 +1888,7 @@ getInputSurface(callback: AsyncCallback\<string>): void ...@@ -1870,7 +1888,7 @@ getInputSurface(callback: AsyncCallback\<string>): void
```js ```js
let surfaceID = null; // 该surfaceID用于传递给相机接口创造videoOutput let surfaceID = null; // 该surfaceID用于传递给相机接口创造videoOutput
AVRecorder.getInputSurface((err, surfaceId) => { avRecorder.getInputSurface((err, surfaceId) => {
if (err == null) { if (err == null) {
console.info('getInputSurface success'); console.info('getInputSurface success');
surfaceID = surfaceId; surfaceID = surfaceId;
...@@ -1879,8 +1897,6 @@ AVRecorder.getInputSurface((err, surfaceId) => { ...@@ -1879,8 +1897,6 @@ AVRecorder.getInputSurface((err, surfaceId) => {
} }
}); });
// videoOutput = await cameraManager.createVideoOutput(videoProfiles[0], surfaceID);
``` ```
### getInputSurface<sup>9+</sup> ### getInputSurface<sup>9+</sup>
...@@ -1916,14 +1932,12 @@ getInputSurface(): Promise\<string> ...@@ -1916,14 +1932,12 @@ getInputSurface(): Promise\<string>
```js ```js
let surfaceID = null; // 该surfaceID用于传递给相机接口创造videoOutput let surfaceID = null; // 该surfaceID用于传递给相机接口创造videoOutput
AVRecorder.getInputSurface().then((surfaceId) => { avRecorder.getInputSurface().then((surfaceId) => {
console.info('getInputSurface success'); console.info('getInputSurface success');
surfaceID = surfaceId; surfaceID = surfaceId;
}).catch((err) => { }).catch((err) => {
console.info('getInputSurface failed and catch error is ' + err.message); 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> ### start<sup>9+</sup><a name=avrecorder_start></a>
...@@ -1955,7 +1969,7 @@ start(callback: AsyncCallback\<void>): void ...@@ -1955,7 +1969,7 @@ start(callback: AsyncCallback\<void>): void
**示例:** **示例:**
```js ```js
AVRecorder.start((err) => { avRecorder.start((err) => {
if (err == null) { if (err == null) {
console.info('start AVRecorder success'); console.info('start AVRecorder success');
} else { } else {
...@@ -1993,7 +2007,7 @@ start(): Promise\<void> ...@@ -1993,7 +2007,7 @@ start(): Promise\<void>
**示例:** **示例:**
```js ```js
AVRecorder.start().then(() => { avRecorder.start().then(() => {
console.info('start AVRecorder success'); console.info('start AVRecorder success');
}).catch((err) => { }).catch((err) => {
console.info('start AVRecorder failed and catch error is ' + err.message); console.info('start AVRecorder failed and catch error is ' + err.message);
...@@ -2029,7 +2043,7 @@ pause(callback: AsyncCallback\<void>): void ...@@ -2029,7 +2043,7 @@ pause(callback: AsyncCallback\<void>): void
**示例:** **示例:**
```js ```js
AVRecorder.pause((err) => { avRecorder.pause((err) => {
if (err == null) { if (err == null) {
console.info('pause AVRecorder success'); console.info('pause AVRecorder success');
} else { } else {
...@@ -2067,7 +2081,7 @@ pause(): Promise\<void> ...@@ -2067,7 +2081,7 @@ pause(): Promise\<void>
**示例:** **示例:**
```js ```js
AVRecorder.pause().then(() => { avRecorder.pause().then(() => {
console.info('pause AVRecorder success'); console.info('pause AVRecorder success');
}).catch((err) => { }).catch((err) => {
console.info('pause AVRecorder failed and catch error is ' + err.message); console.info('pause AVRecorder failed and catch error is ' + err.message);
...@@ -2103,7 +2117,7 @@ resume(callback: AsyncCallback\<void>): void ...@@ -2103,7 +2117,7 @@ resume(callback: AsyncCallback\<void>): void
**示例:** **示例:**
```js ```js
AVRecorder.resume((err) => { avRecorder.resume((err) => {
if (err == null) { if (err == null) {
console.info('resume AVRecorder success'); console.info('resume AVRecorder success');
} else { } else {
...@@ -2141,7 +2155,7 @@ resume(): Promise\<void> ...@@ -2141,7 +2155,7 @@ resume(): Promise\<void>
**示例:** **示例:**
```js ```js
AVRecorder.resume().then(() => { avRecorder.resume().then(() => {
console.info('resume AVRecorder success'); console.info('resume AVRecorder success');
}).catch((err) => { }).catch((err) => {
console.info('resume AVRecorder failed and catch error is ' + err.message); console.info('resume AVRecorder failed and catch error is ' + err.message);
...@@ -2179,7 +2193,7 @@ stop(callback: AsyncCallback\<void>): void ...@@ -2179,7 +2193,7 @@ stop(callback: AsyncCallback\<void>): void
**示例:** **示例:**
```js ```js
AVRecorder.stop((err) => { avRecorder.stop((err) => {
if (err == null) { if (err == null) {
console.info('stop AVRecorder success'); console.info('stop AVRecorder success');
} else { } else {
...@@ -2219,7 +2233,7 @@ stop(): Promise\<void> ...@@ -2219,7 +2233,7 @@ stop(): Promise\<void>
**示例:** **示例:**
```js ```js
AVRecorder.stop().then(() => { avRecorder.stop().then(() => {
console.info('stop AVRecorder success'); console.info('stop AVRecorder success');
}).catch((err) => { }).catch((err) => {
console.info('stop AVRecorder failed and catch error is ' + err.message); console.info('stop AVRecorder failed and catch error is ' + err.message);
...@@ -2254,7 +2268,7 @@ reset(callback: AsyncCallback\<void>): void ...@@ -2254,7 +2268,7 @@ reset(callback: AsyncCallback\<void>): void
**示例:** **示例:**
```js ```js
AVRecorder.reset((err) => { avRecorder.reset((err) => {
if (err == null) { if (err == null) {
console.info('reset AVRecorder success'); console.info('reset AVRecorder success');
} else { } else {
...@@ -2291,7 +2305,7 @@ reset(): Promise\<void> ...@@ -2291,7 +2305,7 @@ reset(): Promise\<void>
**示例:** **示例:**
```js ```js
AVRecorder.reset().then(() => { avRecorder.reset().then(() => {
console.info('reset AVRecorder success'); console.info('reset AVRecorder success');
}).catch((err) => { }).catch((err) => {
console.info('reset AVRecorder failed and catch error is ' + err.message); console.info('reset AVRecorder failed and catch error is ' + err.message);
...@@ -2325,7 +2339,7 @@ release(callback: AsyncCallback\<void>): void ...@@ -2325,7 +2339,7 @@ release(callback: AsyncCallback\<void>): void
**示例:** **示例:**
```js ```js
AVRecorder.release((err) => { avRecorder.release((err) => {
if (err == null) { if (err == null) {
console.info('release AVRecorder success'); console.info('release AVRecorder success');
} else { } else {
...@@ -2361,7 +2375,7 @@ release(): Promise\<void> ...@@ -2361,7 +2375,7 @@ release(): Promise\<void>
**示例:** **示例:**
```js ```js
AVRecorder.release().then(() => { avRecorder.release().then(() => {
console.info('release AVRecorder success'); console.info('release AVRecorder success');
}).catch((err) => { }).catch((err) => {
console.info('release AVRecorder failed and catch error is ' + err.message); console.info('release AVRecorder failed and catch error is ' + err.message);
...@@ -2386,9 +2400,8 @@ on(type: 'stateChange', callback: (state: AVRecorderState, reason: StateChangeRe ...@@ -2386,9 +2400,8 @@ on(type: 'stateChange', callback: (state: AVRecorderState, reason: StateChangeRe
**示例:** **示例:**
```js ```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); console.info('case state has changed, new state is :' + state + ',and new reason is : ' + reason);
}
}); });
``` ```
...@@ -2409,7 +2422,7 @@ off(type: 'stateChange'): void ...@@ -2409,7 +2422,7 @@ off(type: 'stateChange'): void
**示例:** **示例:**
```js ```js
AVRecorder.off('stateChange'); avRecorder.off('stateChange');
``` ```
### on('error')<sup>9+</sup><a name=avrecorder_onerror></a> ### on('error')<sup>9+</sup><a name=avrecorder_onerror></a>
...@@ -2441,7 +2454,7 @@ on(type: 'error', callback: ErrorCallback): void ...@@ -2441,7 +2454,7 @@ on(type: 'error', callback: ErrorCallback): void
**示例:** **示例:**
```js ```js
AVRecorder.on('error', (err) => { avRecorder.on('error', (err) => {
console.info('case avRecorder.on(error) called, errMessage is ' + err.message); console.info('case avRecorder.on(error) called, errMessage is ' + err.message);
}); });
``` ```
...@@ -2472,7 +2485,7 @@ off(type: 'error'): void ...@@ -2472,7 +2485,7 @@ off(type: 'error'): void
**示例:** **示例:**
```js ```js
AVRecorder.off('error'); avRecorder.off('error');
``` ```
## AVRecorderState<sup>9+</sup> ## AVRecorderState<sup>9+</sup>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册