Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
c667661f
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c667661f
编写于
3月 29, 2022
作者:
Z
zengyawen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
delete docs
Signed-off-by:
N
zengyawen
<
zengyawen1@huawei.com
>
上级
99bb95bd
变更
7
展开全部
显示空白变更内容
内联
并排
Showing
7 changed file
with
0 addition
and
3600 deletion
+0
-3600
zh-cn/application-dev/media/Readme-CN.md
zh-cn/application-dev/media/Readme-CN.md
+0
-2
zh-cn/application-dev/media/video-recorder.md
zh-cn/application-dev/media/video-recorder.md
+0
-148
zh-cn/application-dev/reference/apis/Readme-CN.md
zh-cn/application-dev/reference/apis/Readme-CN.md
+0
-21
zh-cn/application-dev/reference/apis/js-apis-audio.md
zh-cn/application-dev/reference/apis/js-apis-audio.md
+0
-68
zh-cn/application-dev/reference/apis/js-apis-camera.md
zh-cn/application-dev/reference/apis/js-apis-camera.md
+0
-2611
zh-cn/application-dev/reference/apis/js-apis-image.md
zh-cn/application-dev/reference/apis/js-apis-image.md
+0
-26
zh-cn/application-dev/reference/apis/js-apis-media.md
zh-cn/application-dev/reference/apis/js-apis-media.md
+0
-724
未找到文件。
zh-cn/application-dev/media/Readme-CN.md
浏览文件 @
c667661f
...
...
@@ -9,7 +9,5 @@
-
视频
-
[
视频播放开发指导
](
video-playback.md
)
-
[
视频录制开发指导
](
video-recorder.md
)
-
图片
-
[
图片开发指导
](
image.md
)
zh-cn/application-dev/media/video-recorder.md
已删除
100644 → 0
浏览文件 @
99bb95bd
# 视频录制开发指导
## 场景介绍
视频录制的主要工作是捕获音视频信号,完成音视频编码并保存到文件中,帮助开发者轻松实现音视频录制功能。它允许调用者指定录制的编码格式、封装格式、文件路径等参数。
**图1**
视频录制状态机

**图2**
视频录制零层图

## 开发步骤
详细API含义可参考:
[
js-apis-media.md
](
../reference/apis/js-apis-media.md
)
### 全流程场景
包含流程:创建实例,设置录制参数,录制视频,暂停录制,恢复录制,停止录制,释放资源等流程。
```
js
import
media
from
'
@ohos.multimedia.media
'
import
mediaLibrary
from
'
@ohos.multimedia.mediaLibrary
'
let
testFdNumber
;
// pathName是传入的录制文件名,例如:01.mp4,生成后的文件地址:/storage/media/100/local/files/Movies/01.mp4
// 使用mediaLibrary需要添加以下权限, ohos.permission.MEDIA_LOCATION、ohos.permission.WRITE_MEDIA、ohos.permission.READ_MEDIA
async
function
getFd
(
pathName
)
{
let
displayName
=
pathName
;
const
mediaTest
=
mediaLibrary
.
getMediaLibrary
();
let
fileKeyObj
=
mediaLibrary
.
FileKey
;
let
mediaType
=
mediaLibrary
.
MediaType
.
VIDEO
;
let
publicPath
=
await
mediaTest
.
getPublicDirectory
(
mediaLibrary
.
DirectoryType
.
DIR_VIDEO
);
let
dataUri
=
await
mediaTest
.
createAsset
(
mediaType
,
displayName
,
publicPath
);
if
(
dataUri
!=
undefined
)
{
let
args
=
dataUri
.
id
.
toString
();
let
fetchOp
=
{
selections
:
fileKeyObj
.
ID
+
"
=?
"
,
selectionArgs
:
[
args
],
}
let
fetchFileResult
=
await
mediaTest
.
getFileAssets
(
fetchOp
);
let
fileAsset
=
await
fetchFileResult
.
getAllObject
();
let
fdNumber
=
await
fileAsset
[
0
].
open
(
'
Rw
'
);
fdNumber
=
"
fd://
"
+
fdNumber
.
toString
();
testFdNumber
=
fdNumber
;
}
}
await
getFd
(
'
01.mp4
'
);
let
videoProfile
=
{
audioBitrate
:
48000
,
audioChannels
:
2
,
audioCodec
:
'
audio/mp4a-latm
'
,
audioSampleRate
:
48000
,
fileFormat
:
'
mp4
'
,
videoBitrate
:
48000
,
videoCodec
:
'
video/mp4v-es
'
,
videoFrameWidth
:
640
,
videoFrameHeight
:
480
,
videoFrameRate
:
30
}
let
videoConfig
=
{
audioSourceType
:
1
,
videoSourceType
:
0
,
profile
:
videoProfile
,
url
:
testFdNumber
,
// testFdNumber由getFd生成
orientationHint
:
0
,
location
:
{
latitude
:
30
,
longitude
:
130
},
}
// 当发生错误上上报的错误回调接口
function
failureCallback
(
error
)
{
console
.
info
(
'
error happened, error name is
'
+
error
.
name
);
console
.
info
(
'
error happened, error code is
'
+
error
.
code
);
console
.
info
(
'
error happened, error message is
'
+
error
.
message
);
}
// 当发生异常时,系统调用的错误回调接口
function
catchCallback
(
error
)
{
console
.
info
(
'
catch error happened, error name is
'
+
error
.
name
);
console
.
info
(
'
catch error happened, error code is
'
+
error
.
code
);
console
.
info
(
'
catch error happened, error message is
'
+
error
.
message
);
}
let
videoRecorder
=
null
;
// videoRecorder空对象在createVideoRecorder成功后赋值
let
surfaceID
=
null
;
// 用于保存getInputSurface返回的surfaceID
// 创建videoRecorder对象
await
media
.
createVideoRecorder
().
then
((
recorder
)
=>
{
console
.
info
(
'
case createVideoRecorder called
'
);
if
(
typeof
(
recorder
)
!=
'
undefined
'
)
{
videoRecorder
=
recorder
;
console
.
info
(
'
createVideoRecorder success
'
);
}
else
{
console
.
info
(
'
createVideoRecorder failed
'
);
}
},
failureCallback
).
catch
(
catchCallback
);
// 获取surfaceID并保存下来传递给camera相关接口
await
videoRecorder
.
getInputSurface
().
then
((
surface
)
=>
{
console
.
info
(
'
getInputSurface success
'
);
surfaceID
=
surface
;
},
failureCallback
).
catch
(
catchCallback
);
// 视频录制依赖相机相关接口,以下需要先调用相机起流接口后才能继续执行
// 视频录制启动接口
await
videoRecorder
.
start
().
then
(()
=>
{
console
.
info
(
'
start success
'
);
},
failureCallback
).
catch
(
catchCallback
);
// 调用pause接口时需要暂停camera出流
await
videoRecorder
.
pause
().
then
(()
=>
{
console
.
info
(
'
pause success
'
);
},
failureCallback
).
catch
(
catchCallback
);
// 调用resume接口时需要恢复camera出流
await
videoRecorder
.
resume
().
then
(()
=>
{
console
.
info
(
'
resume success
'
);
},
failureCallback
).
catch
(
catchCallback
);
// 停止camera出流后,停止视频录制
await
videoRecorder
.
stop
().
then
(()
=>
{
console
.
info
(
'
stop success
'
);
},
failureCallback
).
catch
(
catchCallback
);
// 重置录制相关配置
await
videoRecorder
.
reset
().
then
(()
=>
{
console
.
info
(
'
reset success
'
);
},
failureCallback
).
catch
(
catchCallback
);
// 释放视频录制相关资源并释放camera对象相关资源
await
videoRecorder
.
release
().
then
(()
=>
{
console
.
info
(
'
release success
'
);
},
failureCallback
).
catch
(
catchCallback
);
// 相关对象置null
videoRecorder
=
null
;
surfaceID
=
null
;
```
zh-cn/application-dev/reference/apis/Readme-CN.md
浏览文件 @
c667661f
...
...
@@ -45,7 +45,6 @@
-
application/
[
ProcessRunningInfo (ProcessRunningInfo)
](
js-apis-processrunninginfo.md
)
-
application/
[
ServiceExtensionContext (ServiceExtensionContext)
](
js-apis-service-extension-context.md
)
-
application/
[
shellCmdResult (ShellCmdResult)
](
js-apis-application-shellCmdResult.md
)
-
公共事件与通知
-
[
@ohos.commonEvent (公共事件模块)
](
js-apis-commonEvent.md
)
...
...
@@ -53,20 +52,17 @@
-
[
@ohos.notification (Notification模块)
](
js-apis-notification.md
)
-
[
@ohos.reminderAgent (后台代理提醒)
](
js-apis-reminderAgent.md
)
-
application/
[
EventHub (EventHub)
](
js-apis-eventhub.md
)
-
应用程序包管理
-
[
@ohos.bundle (Bundle模块)
](
js-apis-Bundle.md
)
-
[
@ohos.bundleState (设备使用信息统计)
](
js-apis-deviceUsageStatistics.md
)
-
[
@ohos.zlib (Zip模块)
](
js-apis-zlib.md
)
-
UI界面
-
[
@ohos.animator (动画)
](
js-apis-animator.md
)
-
[
@ohos.mediaquery (媒体查询)
](
js-apis-mediaquery.md
)
-
[
@ohos.prompt (弹窗)
](
js-apis-prompt.md
)
-
[
@ohos.router (页面路由)
](
js-apis-router.md
)
-
图形图像
-
[
@ohos.display (屏幕属性)
](
js-apis-display.md
)
...
...
@@ -74,38 +70,31 @@
-
[
@ohos.window (窗口)
](
js-apis-window.md
)
-
[
webgl (WebGL)
](
js-apis-webgl.md
)
-
[
webgl2 (WebGL2)
](
js-apis-webgl2.md
)
-
媒体
-
[
@ohos.multimedia.audio (音频管理)
](
js-apis-audio.md
)
-
[
@ohos.multimedia.camera (相机管理)
](
js-apis-camera.md
)
-
[
@ohos.multimedia.image (图片处理)
](
js-apis-image.md
)
-
[
@ohos.multimedia.media (媒体服务)
](
js-apis-media.md
)
-
[
@ohos.multimedia.medialibrary (媒体库管理)
](
js-apis-medialibrary.md
)
-
资源管理
-
[
@ohos.i18n (国际化-I18n)
](
js-apis-i18n.md
)
-
[
@ohos.intl (国际化-Intl)
](
js-apis-intl.md
)
-
[
@ohos.resourceManager (资源管理)
](
js-apis-resource-manager.md
)
-
资源调度
-
[
@ohos.backgroundTaskManager (后台任务管理)
](
js-apis-backgroundTaskManager.md
)
-
[
@ohos.workScheduler (延迟任务调度)
](
js-apis-workScheduler.md
)
-
[
@ohos.WorkSchedulerExtensionAbility (延迟任务调度回调)
](
js-apis-workScheduler.md
)
-
定制管理
-
[
@ohos.configPolicy (配置策略)
](
js-apis-config-policy.md
)
-
[
@ohos.enterpriseDeviceManager (企业设备管理)
](
js-apis-enterprise-device-manager.md
)
-
安全
-
[
@ohos.abilityAccessCtrl (访问控制管理)
](
js-apis-abilityAccessCtrl.md
)
-
[
@ohos.security.huks (通用密钥库系统)
](
js-apis-huks.md
)
-
[
@ohos.userIAM.userAuth (用户认证)
](
js-apis-useriam-userauth.md
)
-
[
@system.cipher (加密算法)
](
js-apis-system-cipher.md
)
-
数据管理
-
[
@ohos.data.dataAbility (DataAbility谓词)
](
js-apis-data-ability.md
)
...
...
@@ -115,7 +104,6 @@
-
[
@ohos.data.rdb (关系型数据库)
](
js-apis-data-rdb.md
)
-
[
@ohos.settings (设置数据项名称)
](
js-apis-settings.md
)
-
data/rdb/
[
resultSet (结果集)
](
js-apis-data-resultset.md
)
-
文件管理
-
[
@ohos.environment (目录环境能力)
](
js-apis-environment.md
)
...
...
@@ -124,7 +112,6 @@
-
[
@ohos.statfs (statfs)
](
js-apis-statfs.md
)
-
[
@ohos.storageStatistics (应用空间统计)
](
js-apis-storage-statistics.md
)
-
[
@ohos.volumeManager (卷管理)
](
js-apis-volumemanager.md
)
-
电话服务
-
[
@ohos.contact (联系人)
](
js-apis-contact.md
)
...
...
@@ -134,14 +121,12 @@
-
[
@ohos.telephony.sim (SIM卡管理)
](
js-apis-sim.md
)
-
[
@ohos.telephony.sms (短信服务)
](
js-apis-sms.md
)
-
[
@ohos.telephony.data (蜂窝数据)
](
js-apis-telephony-data.md
)
-
网络管理
-
[
@ohos.net.connection (网络连接管理)
](
js-apis-net-connection.md
)
-
[
@ohos.net.http (数据请求)
](
js-apis-http.md
)
-
[
@ohos.request (上传下载)
](
js-apis-request.md
)
-
[
@ohos.net.socket (Socket连接)
](
js-apis-socket.md
)
-
[
@ohos.net.webSocket (WebSocket连接)
](
js-apis-webSocket.md
)
-
通信与连接
-
[
@ohos.bluetooth (蓝牙)
](
js-apis-bluetooth.md
)
...
...
@@ -149,7 +134,6 @@
-
[
@ohos.rpc (RPC通信)
](
js-apis-rpc.md
)
-
[
@ohos.wifi (WLAN)
](
js-apis-wifi.md
)
-
[
@ohos.wifiext (WLAN)
](
js-apis-wifiext.md
)
-
系统基础能力
-
[
@ohos.accessibility (辅助功能)
](
js-apis-accessibility.md
)
...
...
@@ -167,7 +151,6 @@
-
[
@ohos.systemTime (设置系统时间)
](
js-apis-system-time.md
)
-
[
@ohos.wallpaper (壁纸)
](
js-apis-wallpaper.md
)
-
[
Timer (定时器)
](
js-apis-timer.md
)
-
设备管理
-
[
@ohos.batteryInfo (电量信息)
](
js-apis-battery-info.md
)
...
...
@@ -187,13 +170,11 @@
-
[
@ohos.update (升级)
](
js-apis-update.md
)
-
[
@ohos.usb (USB管理)
](
js-apis-usb.md
)
-
[
@ohos.vibrator (振动)
](
js-apis-vibrator.md
)
-
帐号管理
-
[
@ohos.account.appAccount (应用帐号管理)
](
js-apis-appAccount.md
)
-
[
@ohos.account.distributedAccount (分布式帐号管理)
](
js-apis-distributed-account.md
)
-
[
@ohos.account.osAccount (系统帐号管理)
](
js-apis-osAccount.md
)
-
语言基础类库
-
[
@ohos.convertxml (xml转换JavaScript)
](
js-apis-convertxml.md
)
...
...
@@ -217,11 +198,9 @@
-
[
@ohos.util.Vector (线性容器Vector)
](
js-apis-vector.md
)
-
[
@ohos.worker (启动一个Worker)
](
js-apis-worker.md
)
-
[
@ohos.xml (xml解析与生成)
](
js-apis-xml.md
)
-
测试
-
[
@ohos.application.testRunner (TestRunner)
](
js-apis-testRunner.md
)
-
[
@ohos.uitest (UiTest)
](
js-apis-uitest.md
)
-
已停止维护的接口
-
[
@ohos.bytrace (性能打点)
](
js-apis-bytrace.md
)
...
...
zh-cn/application-dev/reference/apis/js-apis-audio.md
浏览文件 @
c667661f
...
...
@@ -435,17 +435,6 @@ audio.createAudioRenderer(audioCapturerOptions).then((data) => {
| INTERRUPT_TYPE_BEGIN | 1 | 音频播放中断事件开始。 |
| INTERRUPT_TYPE_END | 2 | 音频播放中断事件结束。 |
## InterruptForceType<sup>9+</sup>
枚举,强制打断类型。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Renderer
| 名称 | 默认值 | 描述 |
| --------------- | ------ | ------------------------------------ |
| INTERRUPT_FORCE | 0 | 由系统进行操作,强制打断音频播放。 |
| INTERRUPT_SHARE | 1 | 由应用进行操作,可以选择打断或忽略。 |
## InterruptHint
枚举,中断提示。
...
...
@@ -510,18 +499,6 @@ audio.createAudioRenderer(audioCapturerOptions).then((data) => {
| streamInfo |
[
AudioStreamInfo
](
#audiostreaminfo8
)
| 是 | 表示音频流信息。 |
| rendererInfo |
[
AudioRendererInfo
](
#audiorendererinfo8
)
| 是 | 表示渲染器信息。 |
## InterruptEvent<sup>9+</sup>
播放中断时,应用接收的中断事件。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Renderer
| 名称 | 类型 | 必填 | 说明 |
| --------- | ------------------------------------------ | ---- | ------------------------------------ |
| eventType |
[
InterruptType
](
#interrupttype
)
| 是 | 中断事件类型,开始或是结束。 |
| forceType |
[
InterruptForceType
](
#interruptforcetype9
)
| 是 | 操作是由系统执行或是由应用程序执行。 |
| hintType |
[
InterruptHint
](
#interrupthint
)
| 是 | 中断提示。 |
## AudioInterrupt
音频监听事件传入的参数。
...
...
@@ -2498,51 +2475,6 @@ audioRenderer.getRenderRate().then((renderRate) => {
});
```
### on('interrupt')<sup>9+</sup>
on(type: 'interrupt', callback: Callback
\<
InterruptEvent>): void
监听音频中断事件。使用callback获取中断事件。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'interrupt'(中断事件被触发,音频播放被中断。) |
| callback | Callback
<
[
InterruptEvent
](
#interruptevent9
)
>
| 是 | 被监听的中断事件的回调。 |
**示例:**
```
audioRenderer.on('interrupt', (interruptEvent) => {
if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
switch (interruptEvent.hintType) {
case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
console.log('Force paused. Stop writing');
isPlay = false;
break;
case audio.InterruptHint.INTERRUPT_HINT_STOP:
console.log('Force stopped. Stop writing');
isPlay = false;
break;
}
} else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
switch (interruptEvent.hintType) {
case audio.InterruptHint.INTERRUPT_HINT_RESUME:
console.log('Resume force paused renderer or ignore');
startRenderer();
break;
case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
console.log('Choose to pause or ignore');
pauseRenderer();
break;
}
}
});
```
### on('markReach')<sup>8+</sup>
on(type: 'markReach', frame: number, callback: (position: number) => {}): void
...
...
zh-cn/application-dev/reference/apis/js-apis-camera.md
已删除
100644 → 0
浏览文件 @
99bb95bd
此差异已折叠。
点击以展开。
zh-cn/application-dev/reference/apis/js-apis-image.md
浏览文件 @
c667661f
...
...
@@ -990,40 +990,14 @@ release(): Promise\<void>
| RGBA_8888 | 3 | 格式为RGBA_8888。 |
| RGB_565 | 2 | 格式为RGB_565。 |
## AlphaType<sup>9+</sup>
枚举,透明度。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Image
| 名称 | 默认值 | 描述 |
| -------- | ------ | ----------------------- |
| UNKNOWN | 0 | 未知透明度。 |
| OPAQUE | 1 | 没有alpha或图片全透明。 |
| PREMUL | 2 | RGB前乘alpha。 |
| UNPREMUL | 3 | RGB不前乘alpha。 |
## ScaleMode<sup>9+</sup>
枚举,缩略值。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Image
| 名称 | 默认值 | 描述 |
| --------------- | ------ | -------------------------------------------------- |
| CENTER_CROP | 1 | 缩放图像以填充目标图像区域并居中裁剪区域外的效果。 |
| FIT_TARGET_SIZE | 2 | 图像适合目标尺寸的效果。 |
## InitializationOptions<sup>8+</sup>
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Image
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ----------- | ---------------------------------- | ---- | ---- | -------------- |
| alphaType
<sup>
9+
</sup>
|
[
AlphaType
](
#alphatype9
)
| 是 | 是 | 透明度。 |
| editable | boolean | 是 | 是 | 是否可编辑。 |
| pixelFormat |
[
PixelMapFormat
](
#pixelmapformat7
)
| 是 | 是 | 像素格式。 |
| scaleMode
<sup>
9+
</sup>
|
[
ScaleMode
](
#scalemode9
)
| 是 | 是 | 缩略值。 |
| size |
[
Size
](
#size
)
| 是 | 是 | 创建图片大小。 |
## DecodingOptions<sup>7+</sup>
...
...
zh-cn/application-dev/reference/apis/js-apis-media.md
浏览文件 @
c667661f
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录