# uni.createInnerAudioContext()

创建并返回 audio 上下文 audioContext 对象

注意

使用完后,必须调用destory方法将资源进行释放

支持格式

格式 Android iOS
mp3
mp4
m4a
wav
aac
flac
aiff x
amr x
ape x
caf x
ogg x
wma x
  • web平台的支持取决于浏览器的实现,一般浏览器上述音频格式均支持
  • 小程序平台支持的格式见各家小程序的文档

缓存说明

  • App-Android 平台播放的网络音频,默认会缓存到应用cache目录的uni-audio文件夹下,默认大小为100M,超过后会根据最近最少使用的缓存算法自动进行清除;
  • App-iOS 平台暂不支持Cache功能;

# createInnerAudioContext 兼容性

Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41

# 返回值

类型
InnerAudioContext
名称 类型 必备 默认值 兼容性 描述
duration number -
当前音频的长度(单位:s),只有在当前有合法的 src 时返回
currentTime number -
当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回
paused boolean -
当前是是否暂停或停止状态,true 表示暂停或停止,false 表示正在播放
src string -
音频的数据链接,用于直接播放
startTime number -
音频开始播放的位置(单位:s)
buffered number -
音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲
autoplay boolean false
是否自动开始播放,默认 false
loop boolean false
是否循环播放,默认 false
obeyMuteSwitch boolean -
是否遵循系统静音开关,当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音,默认值 true
volume number -
音量。范围 0~1。
playbackRate number 1.0
播放的倍率。可取值: 0.5/0.8/1.0/1.25/1.5/2.0,默认值为1.0。(仅 App 支持)
referrerPolicy string -
需要基础库: 2.13.0

origin: 发送完整的referrer; no-referrer: 不发送。格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本;

# InnerAudioContext 的方法

# pause(): void;

暂停

# pause 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41

# stop(): void;

停止

# stop 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41

# play(): void;

播放

# play 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41

# seek(position: number): void;

跳转到指定位置,单位 s

# seek 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
position number - - -

# destroy(): void;

销毁当前实例

# destroy 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 - 4.33 4.33 4.41 4.41

# onCanplay(callback: (result: any) => void): void;

音频进入可以播放状态,但不保证后面可以流畅播放

# onCanplay 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# onPlay(callback: (result: any) => void): void;

音频播放事件

# onPlay 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 - 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# onPause(callback: (result: any) => void): void;

音频暂停事件

# onPause 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# onStop(callback: (result: any) => void): void;

音频停止事件

# onStop 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# onEnded(callback: (result: any) => void): void;

音频自然播放结束事件

# onEnded 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# onTimeUpdate(callback: (result: any) => void): void;

音频播放进度更新事件

# onTimeUpdate 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# onError(callback: (result: ICreateInnerAudioContextFail) => void): void;

音频播放错误事件

# onError 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: ICreateInnerAudioContextFail) => void - - -
# ICreateInnerAudioContextFail 的属性值
名称 类型 必备 默认值 兼容性 描述
errCode number - - 错误码
合法值 兼容性 描述
1107601
系统错误
1107602
网络错误
1107603
文件错误
1107604
格式错误
1107605
未知错误
1107609
播放路径不能为空
errSubject string - - 统一错误主题(模块)名称
data any - - 错误信息中包含的数据
cause Error - - 源错误信息,可以包含多个错误,详见SourceError
errMsg string - - -

# onWaiting(callback: (result: any) => void): void;

音频加载中事件,当音频因为数据不足,需要停下来加载时会触发

# onWaiting 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# onSeeking(callback: (result: any) => void): void;

音频进行 seek 操作事件

# onSeeking 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# onSeeked(callback: (result: any) => void): void;

音频完成 seek 操作事件

# onSeeked 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# offCanplay(callback: (result: any) => void): void;

取消监听 onCanplay 事件

# offCanplay 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# offPlay(callback: (result: any) => void): void;

取消监听 onPlay 事件

# offPlay 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# offPause(callback: (result: any) => void): void;

取消监听 onPause 事件

# offPause 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# offStop(callback: (result: any) => void): void;

取消监听 onStop 事件

# offStop 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# offEnded(callback: (result: any) => void): void;

取消监听 onEnded 事件

# offEnded 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# offTimeUpdate(callback: (result: any) => void): void;

取消监听 onTimeUpdate 事件

# offTimeUpdate 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# offError(callback: (result: ICreateInnerAudioContextFail) => void): void;

取消监听 onWaiting 事件

# offError 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: ICreateInnerAudioContextFail) => void - - -

# offWaiting(callback: (result: any) => void): void;

取消监听 onWaiting 事件

# offWaiting 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 - 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# offSeeking(callback: (result: any) => void): void;

取消监听 onSeeking 事件

# offSeeking 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# offSeeked(callback: (result: any) => void): void;

取消监听 onSeeked 事件

# offSeeked 兼容性
Web 微信小程序 Android Android uni-app x UTS 插件 iOS iOS uni-app x UTS 插件
4.0 4.41 4.33 4.33 4.41 4.41
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (result: any) => void - - -

# 参见

# 示例

hello uni-app x

扫码体验(手机浏览器跳转到App直达页)

Template

Script

<template>
	<!-- #ifdef APP -->
	<scroll-view style="flex: 1;">
	<!-- #endif -->
		<view class="uni-padding-wrap">
			<page-head title="audio"></page-head>
			<view class="uni-common-mt">
				<slider ref="slider" :value="position" :min="0" :max="duration" @changing="onchanging"
					@change="onchange"></slider>
			</view>
			<view class="uni-title">
				<text class="uni-title-text">属性示例</text>
			</View>
			<text class="uni-text-box uni-common-mt">当前音频播放位置(保留小数点后 6 位):{{currentTime}} s</text>
			<text class="uni-text-box">音频的长度(单位:s):{{duration}} s</text>
			<text class="uni-text-box">当前是否停止状态:{{isPaused}}</text>
			<text class="uni-text-box">音频缓冲的时间点:{{buffered}} s</text>
			<text class="uni-text-box">当前音量:{{volume}}</text>
			<!-- 设置音量无效 -->
			<button plain :disabled="volume == 1" @click="increaseVolume">增加音量</button>
			<button plain :disabled="volume == 0" @click="decreaseVolume">减少音量</button>

			<text class="uni-subtitle-text uni-title">开始播放的位置(单位:s)</text>
			<input :value="startTime" type="number" placeholder="开始播放的位置(单位:s)" class="uni-input"
				@input="startTimeInput"></input>
			<boolean-data :defaultValue="false" title="是否自动开始播放" @change="setAutoplay"></boolean-data>
			<boolean-data :defaultValue="false" title="是否循环播放" @change="setLoop"></boolean-data>
			<text class="uni-subtitle-text uni-title"
				style="padding-left: 10px;padding-top: 10px;padding-right: 10px;">播放倍率(Web不支持)</text>
			<radio-group class="uni-flex uni-row radio-group" @change="playbackRateChange"
				style="flex-wrap: wrap;padding: 10px;">
				<radio value="0.5" style="margin-right: 3px">0.5
				</radio>
				<radio value="0.8" style="margin-right: 3px">0.8</radio>
				<radio value="1.0" style="margin-right: 3px" :checked="playbackRateChecked">1.0</radio>
				<radio value="1.25" style="margin-right: 3px">1.25</radio>
				<radio value="1.5" style="margin-right: 3px">1.5</radio>
				<radio value="2.0">2.0</radio>
			</radio-group>

			<view class="uni-title">
				<text class="uni-title-text">方法示例</text>
			</View>
			<button :disabled="isPlaying" @click="play" class="uni-btn">播放</button>
			<button :disabled="!isPlaying" @click="pause" class="uni-btn">暂停</button>
			<button :disabled="!isPlaying" @click="stop" class="uni-btn">停止</button>
			<button @click="onchangeValue(20)" class="uni-btn">跳转到指定位置20</button>
			<button @click="onTimeUpdate" class="uni-btn">onTimeUpdate</button>
			<button @click="offTimeUpdate" class="uni-btn">offTimeUpdate</button>
			<button @click="onWaiting" class="uni-btn">onWaiting</button>
			<button @click="offWaiting" class="uni-btn">offWaiting</button>


			<text style="color: red;font-size: 15px;margin-top: 10px;">tip:销毁后请重新进入此界面再播放</text>
			<button @click="destory" class="uni-btn">销毁</button>

			<view class="uni-title">
				<text class="uni-title-text">格式/路径示例</text>
			</View>
			<navigator url="/pages/API/create-inner-audio-context/inner-audio-format" class="uni-btn">
				<button @click="pause">音频格式示例</button>
			</navigator>
			<navigator url="/pages/API/create-inner-audio-context/inner-audio-path" class="uni-btn">
				<button @click="pause">音频路径示例</button>
			</navigator>
			<navigator url="/pages/API/create-inner-audio-context/inner-audio-mult" class="uni-btn">
				<button @click="pause">多音频同时播放</button>
			</navigator>
		</view>
	<!-- #ifdef APP -->
	</scroll-view>
	<!-- #endif -->
</template>

<style>
	.play-time-area {
		display: flex;
		flex-direction: row;
		margin-top: 20px;
	}

	.duration {
		margin-left: auto;
	}

	.play-button-area {
		display: flex;
		flex-direction: row;
		justify-content: center;
		margin: 50px 0;
	}

	.icon-play {
		width: 60px;
		height: 60px;
	}
</style>

# 通用类型

# GeneralCallbackResult

名称 类型 必备 默认值 兼容性 描述
errMsg string -
错误信息