{"_id":"@cordova-ohos/cordova-plugin-media","_rev":"5-9d2f49ecee710ca50fde6dcc6e756e4f","name":"@cordova-ohos/cordova-plugin-media","dist-tags":{"latest":"7.0.1"},"versions":{"3.0.0":{"name":"@cordova-ohos/cordova-plugin-media","version":"3.0.0","keywords":["cordova","media","ecosystem:cordova","cordova-openharmony"],"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-media@3.0.0","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"bugs":{"url":"https://gitcode.com/OpenHarmony-Cordova/cordova-plugin-media/issues"},"dist":{"shasum":"6f00e2e9b8b0f6e8148f736342ce6b8d967a6b5f","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-media/-/cordova-plugin-media-3.0.0.tgz","fileCount":14,"integrity":"sha512-ezM6Gz4MlQ7TgkpDidGssEEu6d7c7CH1GFOlReeLFz2M7fn+LeHjLmbgGhP5inzShhPOwSRiwkBWrP9eP8o7PQ==","signatures":[{"sig":"MEYCIQCDFRPSYIclsfU+00930gyMIXJ9PU5ufcD1hNs74a/E6AIhALpVOy2akRzI7vsHFluNYSOFNJRYE6yh4TzuNjj8WhdD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133255},"cordova":{"id":"cordova-plugin-media","platforms":["ohos"]},"engines":{"cordovaDependencies":{"3.0.0":{"hcordova":">=1.0.0","@cordova-ohos/ohos":">=2.0.0"}}},"gitHead":"bafb5606256f9e4a62e9f80faa768ac69ba0134c","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"repository":{"url":"gitcode:OpenHarmony-Cordova/cordova-plugin-media","type":"git"},"_npmVersion":"10.5.1","description":"Cordova media Plugin","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cordova-plugin-media_3.0.0_1773827198595_0.8858457953042349","host":"s3://npm-registry-packages-npm-production"}},"7.0.1":{"name":"@cordova-ohos/cordova-plugin-media","version":"7.0.1","description":"Cordova Media Plugin","cordova":{"id":"cordova-plugin-media","platforms":["ohos"]},"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-media"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-media/issues"},"keywords":["cordova","media","ecosystem:cordova","cordova-openharmony"],"engines":{"cordovaDependencies":{"7.0.1":{"@cordova-ohos/ohos":">=2.0.0","hcordova":">=1.0.0"}}},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-media@7.0.1","gitHead":"78644f5d64564741661634ed14c0a61ad06d3f9f","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-9aDoLymYPdHITuzWLcTb2oFuuERhhGPVJlvhYyqKZsO3A7YQdSOBJhy4A7zkh98dSoyEtXACEIDRuBIFs4F1sw==","shasum":"78a4deb351ab0eaae9428ab487262006e0b9e53e","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-media/-/cordova-plugin-media-7.0.1.tgz","fileCount":15,"unpackedSize":157045,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDRt/jGXZi75xumUsSMKd+il+OZJOqNgH2QE051EMX37AiAD1IIlwT2vPs5LxivefBZmyT48aRogtnd2L/MyONDF3Q=="}]},"_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"directories":{},"maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"},{"name":"wanpengsz","email":"wanpengsz@163.com"},{"name":"xkh111","email":"xukaihui11@163.com"},{"name":"hcordova","email":"chenlihuiabc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cordova-plugin-media_7.0.1_1785140719288_0.43148843971298456"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-18T09:46:38.474Z","modified":"2026-07-27T08:25:19.668Z","3.0.0":"2026-03-18T09:46:38.729Z","7.0.1":"2026-07-27T08:25:19.451Z"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-media/issues"},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","keywords":["cordova","media","ecosystem:cordova","cordova-openharmony"],"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-media"},"description":"Cordova Media Plugin","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"},{"name":"wanpengsz","email":"wanpengsz@163.com"},{"name":"xkh111","email":"xukaihui11@163.com"},{"name":"hcordova","email":"chenlihuiabc@163.com"}],"readme":"# <center>cordova-plugin-media</center>\r\n\r\n[![zh-CN](https://img.shields.io/badge/lang-中文-blue.svg)](README.md)\r\n[![en](https://img.shields.io/badge/lang-English-blue.svg)](README.en.md)\r\n\r\n本项目基于 [cordova-plugin-media@7.0.0](https://npmjs.com/package/cordova-plugin-media/v/7.0.0) 开发，本文档重点阐述其在 OpenHarmony（OHOS）系统中的具体应用。\r\n\r\n- [cordova-plugin-media](#cordova-plugin-media)\r\n  - [简介](#简介)\r\n  - [插件概述](#插件概述)\r\n    - [核心功能](#核心功能)\r\n    - [支持平台](#支持平台)\r\n  - [下载安装](#下载安装)\r\n    - [前提条件](#前提条件)\r\n    - [安装插件](#安装插件)\r\n    - [从 npm 安装（推荐）](#从-npm-安装推荐)\r\n    - [指定平台安装 ohos](#指定平台安装-ohos)\r\n    - [从 GitCode 仓库安装](#从-gitcode-仓库安装)\r\n    - [安装指定版本](#安装指定版本)\r\n    - [离线安装（本地包）](#离线安装本地包)\r\n    - [安装后验证](#安装后验证)\r\n    - [卸载](#卸载)\r\n  - [约束与限制](#约束与限制)\r\n    - [兼容性](#兼容性)\r\n  - [平台配置](#平台配置)\r\n    - [OHOS 权限配置](#ohos-权限配置)\r\n  - [使用示例](#使用示例)\r\n  - [支持的音频格式](#支持的音频格式)\r\n  - [使用说明](#使用说明)\r\n    - [核心 API 文档](#核心-api-文档)\r\n      - [1. 创建媒体实例](#1-创建媒体实例)\r\n        - [路径说明（重要）](#路径说明重要)\r\n      - [2. 媒体操作方法](#2-媒体操作方法)\r\n      - [3. 媒体状态常量](#3-媒体状态常量)\r\n      - [4. 错误常量](#4-错误常量)\r\n    - [配置参数](#配置参数)\r\n    - [使用注意](#使用注意)\r\n  - [新增特性](#新增特性)\r\n  - [目录结构](#目录结构)\r\n  - [贡献代码](#贡献代码)\r\n  - [许可证](#许可证)\r\n  - [官方资源](#官方资源)\r\n\r\n\r\n## 简介\r\n\r\n`cordova-plugin-media` 是 Harmony Cordova 生态系统中一款核心插件，为 Cordova 应用提供音频录制、播放、暂停、停止等核心媒体操作能力。该插件支持 Android、iOS、OHOS 主流移动平台，同时提供 Browser 平台的兼容实现，便于开发者快速构建具备媒体处理功能的跨平台应用（如语音备忘录、音频播放器等）。本文档主要说明在 OHOS 系统中的应用。\r\n\r\n## 插件概述\r\n\r\n### 核心功能\r\n\r\n- 音频文件播放（支持本地文件、远程 URL 资源）\r\n\r\n- 音频录制（支持自定义采样率、比特率、格式）\r\n\r\n- 媒体操作控制（暂停、继续、停止、跳转播放位置）\r\n\r\n- 播放/录制状态监听（如播放完成、录制中断、错误事件）\r\n\r\n- 音量控制（系统音量、媒体音量独立调节）\r\n\r\n### 支持平台\r\n\r\n- ✅ Android（API Level 21+）\r\n\r\n- ✅ iOS（12.0+）\r\n\r\n- ✅ Browser（Chrome、Firefox 等现代浏览器）\r\n\r\n- ✅ OHOS（5.0+）\r\n\r\n## 下载安装\r\n\r\n### 前提条件\r\n\r\n- 已安装 npm\r\n\r\n- 已安装 hcordova\r\n\r\n- 已创建 Cordova 项目（`hcordova create myApp`）\r\n\r\n### 安装插件\r\n\r\n在 Cordova 项目根目录执行以下命令，可根据需求选择稳定版、指定平台安装或开发版安装：\r\n\r\n通过 hcordova CLI 即可快速安装插件，支持从 npm 仓库或 GitCode 仓库获取。\r\n\r\n### 从 npm 安装（推荐）\r\n\r\n```bash\r\n# 使用 hcordova CLI 安装\r\n# 安装 hcordova 命令化工具\r\nnpm install -g hcordova\r\n\r\n# 全平台安装插件\r\nhcordova plugin add cordova-plugin-media\r\n```\r\n\r\n### 指定平台安装 ohos\r\n\r\n仅为 OHOS 平台安装插件：\r\n\r\n```bash\r\n# 仅安装到 OHOS 平台\r\nhcordova plugin add cordova-plugin-media --platform ohos\r\n```\r\n\r\n### 从 GitCode 仓库安装\r\n\r\n仅为 OHOS 平台安装插件：\r\n\r\n```bash\r\n# 仅安装到 OHOS 平台\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-media.git --platform ohos\r\n\r\n# 指定标签/分支安装\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-media.git@develop --platform ohos\r\n```\r\n\r\n### 安装指定版本\r\n\r\n```bash\r\n# 仅安装到 OHOS 平台指定版本\r\nhcordova plugin add cordova-plugin-media@1.0.0 --platform ohos\r\n```\r\n\r\n### 离线安装（本地包）\r\n\r\n适用于无网络环境，先下载插件包到本地，再执行离线安装：\r\n\r\n```bash\r\n# 下载插件包到本地（示例路径：~/Downloads/cordova-plugin-media）\r\n# 执行离线安装\r\nhcordova plugin add ~/Downloads/cordova-plugin-media --platform ohos\r\n```\r\n\r\n### 安装后验证\r\n\r\n安装完成后，可通过以下命令验证插件是否成功添加到项目中：\r\n\r\n```bash\r\n# 查看已安装的插件列表，若包含本插件 ID 则表示插件已成功安装\r\nhcordova plugin list\r\n```\r\n\r\n\r\n### 卸载\r\n\r\n```bash\r\n# Cordova CLI 全平台卸载\r\nhcordova plugin remove cordova-plugin-media \r\n\r\n# 指定平台卸载\r\nhcordova plugin remove cordova-plugin-media --platform ohos\r\n```\r\n\r\n## 约束与限制\r\n\r\n1. OHOS 平台使用时，需在主工程 module.json5 中添加麦克风权限，否则无法正常进行音频录制；\r\n2. 音频录制和播放需配合 `cordova-plugin-file` 插件获取本地沙箱文件路径，避免路径错误导致操作失败；\r\n3. 远程音频资源播放需确保设备网络通畅，不存在跨域问题；\r\n4. 媒体操作完成后需调用 `release()` 方法释放资源，避免内存泄漏；\r\n5. 不同平台支持的音频格式略有差异，建议录制时使用推荐的 m4a 格式，确保跨平台兼容。\r\n\r\n### 兼容性\r\n\r\n支持：\r\n\r\n| 项目 | 版本/信息 |\r\n|-----|--------|\r\n| SDK | API12+ |\r\n| IDE | DevEco Studio: 5.0+ |\r\n| ROM | 5.1+ |\r\n| Emulator | OpenHarmony 6.0+ |\r\n\r\n在以下版本中已测试通过：\r\n\r\n| 项目 | 版本/信息 |\r\n|-----|--------|\r\n| @cordova-ohos/ohos | 14.0.1-ohos-14.0.1 |\r\n| SDK | 5.0.0(12) |\r\n| IDE | DevEco Studio: 6.0.13.200 |\r\n| ROM | 5.1.0.120 SP3 |\r\n| Emulator | OpenHarmony 6.0.1(21) |\r\n\r\n## 平台配置\r\n\r\n在 OHOS 平台需配置权限，该插件才能正常工作\r\n\r\n### OHOS 权限配置\r\n\r\n需在主工程 module.json5 中添加麦克风权限，否则无法正常进行音频录制：\r\n\r\n```json\r\n{\r\n    \"name\": \"ohos.permission.MICROPHONE\",\r\n    \"reason\": \"$string:microphoneInfo\",\r\n    \"usedScene\": {\r\n        \"abilities\": [\r\n        \"EntryAbility\"\r\n        ],\r\n        \"when\": \"always\"\r\n    }\r\n}\r\n```\r\n\r\n- **ohos.permission.MICROPHONE**：麦克风权限\r\n  \r\n## 使用示例\r\n\r\n以下示例包含音频录制和音频播放两个核心场景，需配合 `cordova-plugin-file` 获取本地文件路径（安装：`hcordova plugin add cordova-plugin-file`）。\r\n\r\n```javascript\r\n// 开始录制音频\r\nvar my_media = null;\r\nfunction startRecord() {\r\n    function onSuccess(successInfo) {\r\n        alert(successInfo);\r\n    }\r\n\r\n    function onError(errorInfo) {\r\n        alert(\"MediaErrorInfo:\"+errorInfo);\r\n    }\r\n\r\n    window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function(dirEntry) {\r\n        var targetPath = dirEntry.toURL() + \"test.m4a\";\r\n        my_media = new Media(targetPath, onSuccess, onError);\r\n        my_media.startRecord();\r\n    });\r\n}\r\n\r\n// 暂停录制\r\nfunction pauseRecord() {\r\n    my_media.pauseRecord();\r\n    document.getElementById(\"mediaInfo\").innerHTML = \"录音已暂停\";\r\n}\r\n\r\n// 继续录制\r\nfunction resumeRecord() {\r\n    my_media.resumeRecord();\r\n    document.getElementById(\"mediaInfo\").innerHTML = \"正在录音\";\r\n}\r\n\r\n// 停止录制\r\nfunction stopRecord() {\r\n    my_media.stopRecord();\r\n    document.getElementById(\"mediaInfo\").innerHTML = \"录音结束\";\r\n}\r\n\r\n// 开始播放\r\nfunction startPlaying() {\r\n    if(my_media != null) {\r\n        my_media.play();\r\n        document.getElementById(\"mediaInfo\").innerHTML = \"正在播放\";\r\n    }\r\n}\r\n\r\n// 暂停播放\r\nfunction pausePlaying() {\r\n    if(my_media != null) {\r\n        my_media.pause();\r\n        document.getElementById(\"mediaInfo\").innerHTML = \"已暂停播放\";\r\n    }\r\n}\r\n\r\n// 继续播放\r\nfunction resumePlaying() {\r\n    if(my_media != null) {\r\n        my_media.play();\r\n        document.getElementById(\"mediaInfo\").innerHTML = \"正在播放\";\r\n    }\r\n}\r\n\r\n// 停止播放\r\nfunction stopPlaying() {\r\n    if(my_media != null) {\r\n        my_media.stop();\r\n        document.getElementById(\"mediaInfo\").innerHTML = \"已停止播放\";\r\n    }\r\n}\r\n\r\n// 关闭音量\r\nfunction setVolume0() {\r\n    if(my_media != null) {\r\n        my_media.setVolume(0);\r\n        document.getElementById(\"mediaInfo\").innerHTML = \"关闭声音\";\r\n    }\r\n}\r\n\r\n// 设置音量\r\nfunction setVolume1() {\r\n    if(my_media != null) {\r\n        my_media.setVolume(1);\r\n        document.getElementById(\"mediaInfo\").innerHTML = \"原始声音\";\r\n    }\r\n}\r\n\r\n// 跳转进度\r\nfunction seekTo() {\r\n    if(my_media != null) {\r\n        my_media.seekTo(1000);\r\n        document.getElementById(\"mediaInfo\").innerHTML = \"设置播放进度\";\r\n    }\r\n}\r\n\r\n// 设置倍速\r\nfunction setRate() {\r\n    if(my_media != null) {\r\n        my_media.setRate(0.5);\r\n        document.getElementById(\"mediaInfo\").innerHTML = \"设置慢速播放\";\r\n    }\r\n}\r\n\r\n// 释放资源\r\nfunction releaseAudio() {\r\n    if(my_media != null) {\r\n        my_media.release();\r\n        document.getElementById(\"mediaInfo\").innerHTML = \"已释放音频\";\r\n        my_media = null;\r\n    }\r\n}\r\n```\r\n\r\n## 支持的音频格式\r\n\r\n- 播放：MP3、WAV、OGG、AAC\r\n\r\n- 录制：推荐 m4a\r\n\r\n## 使用说明\r\n\r\n### 核心 API 文档\r\n\r\n插件通过全局对象 `media` 暴露所有功能，创建媒体实例后即可调用对应方法。\r\n\r\n#### 1. 创建媒体实例\r\n\r\n```javascript\r\n/*\r\n* 创建媒体实例\r\n* @param src - 音频资源路径（本地文件路径或远程 URL）\r\n* @param successCallback - 成功回调（播放/录制完成时触发）\r\n* @param errorCallback - 错误回调（发生错误时触发）\r\n* @param statusCallback - 状态回调（状态变化时触发）\r\n* @returns Media 对象 - 媒体操作实例\r\n*/\r\n\r\nconst media = new Media(\r\n   src,\r\n   () => { console.log(\"操作完成\"); },  // 成功回调\r\n   (err) => { console.error(\"错误:\", err); },  // 错误回调\r\n   (status) => { console.log(\"当前状态:\", status); }  // 状态回调\r\n);\r\n```\r\n\r\n##### 路径说明（重要）\r\n\r\n- **OHOS 本地文件**：通过 `cordova-plugin-file` 插件设置生成的沙箱文件路径。\r\n\r\n- **本地文件**：需使用 `cdvfile://` 协议路径或沙盒内绝对路径（例如 `cdvfile://localhost/persistent/recording.m4a`）。\r\n\r\n- **远程资源**：直接传入 HTTP/HTTPS URL（例如 `https://localhost/persistent/recording.m4a`），不存在跨域问题。\r\n\r\n#### 2. 媒体操作方法\r\n\r\n| 方法名 | 描述 | 参数 | 返回值 |\r\n|---|---|---|---|\r\n| `play()` | 播放音频 | 无 | 无 |\r\n| `pause()` | 暂停播放 | 无 | 无 |\r\n| `stop()` | 停止播放/录制 | 无 | 无 |\r\n| `seekTo(milliseconds)` | 跳转到指定播放位置 | `milliseconds`（数字）：目标位置（毫秒） | 无 |\r\n| `startRecord()` | 开始录制音频 | 无 | 无 |\r\n| `stopRecord()` | 停止录制音频 | 无 | 无 |\r\n| `setVolume(volume)` | 设置媒体音量 | `volume`（数字）：0.0 ~ 1.0（0 为静音，1 为最大音量） | 无 |\r\n| `getCurrentPosition(successCallback)` | 获取当前播放位置 | `successCallback`：回调参数为当前位置（毫秒） | 无 |\r\n| `release()` | 释放媒体资源（重要：避免内存泄漏） | 无 | 无 |\r\n\r\n#### 3. 媒体状态常量\r\n\r\n通过 `Media` 对象的静态属性获取状态，可在 `statusCallback` 中判断当前状态：\r\n\r\n| 常量 | 值 | 描述 |\r\n|---|---|---|\r\n| `Media.MEDIA_NONE` | 0 | 无媒体资源 |\r\n| `Media.MEDIA_STARTING` | 1 | 播放/录制开始中 |\r\n| `Media.MEDIA_RUNNING` | 2 | 播放/录制中 |\r\n| `Media.MEDIA_PAUSED` | 3 | 暂停中 |\r\n| `Media.MEDIA_STOPPED` | 4 | 已停止 |\r\n\r\n#### 4. 错误常量\r\n\r\n错误回调中返回的 `error.code` 对应以下常量：\r\n\r\n| 常量 | 值 | 描述 |\r\n|---|---|---|\r\n| `MediaError.MEDIA_ERR_ABORTED` | 1 | 操作被用户中止 |\r\n| `MediaError.MEDIA_ERR_NETWORK` | 2 | 网络错误（远程资源加载失败） |\r\n| `MediaError.MEDIA_ERR_DECODE` | 3 | 音频解码失败（格式不支持） |\r\n| `MediaError.MEDIA_ERR_NONE_SUPPORTED` | 4 | 无支持的媒体格式 |\r\n\r\n### 配置参数\r\n\r\n无额外全局配置参数，API 调用需传入对应参数，OHOS 平台需额外配置麦克风权限，音频路径需通过 `cordova-plugin-file` 插件获取。\r\n\r\n### 使用注意\r\n\r\n1. 安装插件前需确保已安装 `cordova-plugin-file` 插件，否则无法正常获取本地文件路径；\r\n2. OHOS 平台必须配置麦克风权限，否则录制功能会报错；\r\n3. 媒体操作完成后（如播放结束、录制停止），务必调用 `release()` 方法释放资源，避免内存泄漏；\r\n4. 远程音频播放需确保设备网络正常，本地音频需使用正确的沙箱路径；\r\n5. 不同平台对音频格式的支持存在细微差异，建议统一使用推荐格式，提升跨平台兼容性。\r\n\r\n## 新增特性\r\n\r\n1. 适配 OHOS 5.0+ 系统，严格遵循 OpenHarmony 开发规范，支持音频录制、播放等核心功能；\r\n2. 保留原有插件核心 API 接口和功能逻辑，确保跨平台一致性，原 Android/iOS 项目移植到 OHOS 后无需大量修改代码；\r\n3. 补充 OHOS 平台权限配置说明和路径使用规范，明确与 `cordova-plugin-file` 插件的配合方式；\r\n4. 兼容 Cordova 14.0.1-ohos 版本，优化 OHOS 平台媒体操作稳定性，减少报错概率。\r\n\r\n## 目录结构\r\n\r\n```\r\ncordova-plugin-media/\r\n├── src/                          # 源代码目录\r\n│   └── main/                     # 主要源代码\r\n│       ├── cpp/                  # C++ 原生代码\r\n│       │   └── media/            # 媒体模块\r\n│       │       ├── AudioHandler.cpp  # 音频处理功能的 C++ 实现\r\n│       │       └── AudioHandler.h    # 音频处理功能的头文件\r\n│       │       ├── AudioPlayer.cpp   # 音频播放功能的 C++ 实现\r\n│       │       └── AudioPlayer.h     # 音频播放功能的头文件\r\n│       └── ets/                  # ArkTS 代码（OpenHarmony API）\r\n│           └── components/       # 组件目录\r\n│               └── MediaAction/  # 媒体动作组件\r\n│                   ├── AudioAction.ets   # 音频动作的 ArkTS 实现\r\n│                   ├── AudioRecorder.ets # 音频录制的 ArkTS 实现\r\n│                   └── MediaAction.ets   # 媒体动作的 ArkTS 实现\r\n├── www/                          # Web 资源目录\r\n│   ├── Media.js                  # JavaScript 媒体接口（Cordova 桥接层）\r\n│   └── MediaError.js             # 媒体错误码定义\r\n├── .gitignore                    # Git 忽略文件配置\r\n├── LICENSE                       # 项目开源许可证\r\n├── OAT.xml                       # OpenHarmony 审核配置文件\r\n├── package.json                  # Node.js 包配置\r\n├── plugin.xml                    # Cordova 插件描述文件（核心配置）\r\n└── README.md                     # 项目说明文档\r\n```\r\n\r\n## 贡献代码\r\n\r\n使用过程中发现任何问题都可以提 [Issue](https://gitcode.com/CPF-Cordova/cordova-plugin-media/issues) ，当然也非常欢迎发 [PR](https://gitcode.com/CPF-Cordova/cordova-plugin-media/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **Apache License 2.0** 开源，详见 [LICENSE](LICENSE) 文件。\r\n\r\n## 官方资源\r\n\r\n1. GitHub Android、iOS 仓库：[apache/cordova-plugin-media](https://github.com/apache/cordova-plugin-media)\r\n\r\n2. OHOS Cordova 仓库：[https://gitcode.com/CPF-Cordova/cordova-plugin-media](https://gitcode.com/CPF-Cordova/cordova-plugin-media)\r\n","readmeFilename":"README.md"}