1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <template>
- <!-- #ifdef APP -->
- <scroll-view style="flex:1">
- <!-- #endif -->
- <page-head title="setInnerAudioOption"></page-head>
- <text style="margin-left: 8px">是否允许与其他音频同时播放</text>
- <radio-group class="uni-flex" style="margin:8px" @change="onMixChanged">
- <radio value="1" :checked="true">是</radio>
- <radio value="0" style="margin-left: 16px">否</radio>
- </radio-group>
- <view style="padding: 8px 8px;">
- <button @click="playBackgroundMusic" type="primary">播放背景音频</button>
- <button @click="playInnerMusic" style="margin-top: 8px">播放音频</button>
- </view>
- <view style="padding: 16px 8px;">
- <view class="uni-row">
- <view>1. </view>uni.setInnerAudioOption需要与uni.createInnerAudioContext搭配才会生效
- </view>
- <view class="uni-row">
- <view>2. </view>设置mixWithOther为true时,会暂停其他App的音频和背景音频
- </view>
- </view>
- <!-- #ifdef APP -->
- </scroll-view>
- <!-- #endif -->
- </template>
- <script>
- export default {
- data() {
- return {
- backgroundManager: null as BackgroundAudioManager | null,
- innerAudio: null as InnerAudioContext | null,
- isBackgroundAudioPaused: false
- }
- },
- onUnload() {
- this.backgroundManager?.stop()
- this.innerAudio?.stop()
- },
- methods: {
- playBackgroundMusic() {
- if (this.backgroundManager == null) {
- this.backgroundManager = uni.getBackgroundAudioManager()
- this.backgroundManager.onPause(() => {
- this.isBackgroundAudioPaused = true
- })
- } else {
- this.backgroundManager!.stop()
- }
- this.backgroundManager!.src = 'https://web-ext-storage.dcloud.net.cn/uni-app/ForElise.mp3'
- this.backgroundManager!.coverImgUrl = 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/music-a.png';
- this.backgroundManager!.play()
- },
- playInnerMusic() {
- if (this.innerAudio == null)
- this.innerAudio = uni.createInnerAudioContext()
- else {
- this.innerAudio!.stop()
- }
- this.innerAudio!.src = 'https://web-ext-storage.dcloud.net.cn/uni-app/ForElise.mp3'
- this.innerAudio!.play()
- },
- onMixChanged(event : UniRadioGroupChangeEvent) {
- uni.setInnerAudioOption({
- mixWithOther: event.detail.value == "1"
- })
- },
- testInnerAudioOption() {
- uni.setInnerAudioOption({
- mixWithOther: false
- })
- }
- }
- }
- </script>
- <style>
- </style>
|