|
|
|
<script>
|
|
|
|
export default {
|
|
|
|
globalData: {
|
|
|
|
mainSliderIndex: 0,
|
|
|
|
randomImages: [],
|
|
|
|
bgMusic: null,
|
|
|
|
isMusicPlaying: false,
|
|
|
|
musicSrc: 'https://static.ticket.sz-trip.com/epicSoul/EpicSouls.mp3',
|
|
|
|
currentAudio: null // 全局音频实例
|
|
|
|
},
|
|
|
|
onLaunch: function() {
|
|
|
|
console.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!')
|
|
|
|
console.log('App Launch')
|
|
|
|
// 移除初始化背景音乐的调用
|
|
|
|
// this.initBackgroundMusic();
|
|
|
|
// 审核
|
|
|
|
this.Post({id: 10217},'/api/article/getArticleById').then(res => {
|
|
|
|
try {
|
|
|
|
let SHFlag = res.data.title
|
|
|
|
// let SHFlag = res.data.subtitle
|
|
|
|
uni.setStorageSync('SHFlag', SHFlag)
|
|
|
|
} catch(e) {}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
onShow: function() {
|
|
|
|
console.log('App Show')
|
|
|
|
},
|
|
|
|
onHide: function() {
|
|
|
|
console.log('App Hide')
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
initBackgroundMusic() {
|
|
|
|
try {
|
|
|
|
console.log('bgMusic',this.globalData.bgMusic)
|
|
|
|
// 销毁旧的音频实例(关键!)
|
|
|
|
if (this.globalData.bgMusic) {
|
|
|
|
this.globalData.bgMusic.stop();
|
|
|
|
this.globalData.bgMusic.destroy()
|
|
|
|
this.globalData.bgMusic = null;
|
|
|
|
}
|
|
|
|
|
|
|
|
let bgMusic;
|
|
|
|
|
|
|
|
// 区分平台 - 小程序环境使用背景音频,H5等环境使用内部音频
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
// try {
|
|
|
|
// bgMusic = uni.getBackgroundAudioManager();
|
|
|
|
// // 小程序环境需要设置title
|
|
|
|
// bgMusic.title = '背景音乐';
|
|
|
|
// // 设置音频组件的 ID
|
|
|
|
// bgMusic.id = 'mp-audio';
|
|
|
|
// } catch (e) {
|
|
|
|
// console.error('获取背景音频管理器失败,改用内部音频上下文', e);
|
|
|
|
// bgMusic = uni.createInnerAudioContext();
|
|
|
|
// }
|
|
|
|
bgMusic = uni.createInnerAudioContext();
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
// #ifndef MP-WEIXIN
|
|
|
|
bgMusic = uni.createInnerAudioContext();
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
// 配置音频
|
|
|
|
bgMusic.src = this.globalData.musicSrc;
|
|
|
|
console.log(bgMusic.src)
|
|
|
|
bgMusic.loop = true; // 循环播放
|
|
|
|
|
|
|
|
// 使用不同的事件监听方式,兼容两种音频上下文
|
|
|
|
if (bgMusic.onPlay) {
|
|
|
|
// BackgroundAudioManager 方式
|
|
|
|
bgMusic.onPlay(() => {
|
|
|
|
this.globalData.isMusicPlaying = true;
|
|
|
|
});
|
|
|
|
|
|
|
|
bgMusic.onPause(() => {
|
|
|
|
this.globalData.isMusicPlaying = false;
|
|
|
|
});
|
|
|
|
|
|
|
|
bgMusic.onStop(() => {
|
|
|
|
this.globalData.isMusicPlaying = false;
|
|
|
|
});
|
|
|
|
|
|
|
|
bgMusic.onEnded(() => {
|
|
|
|
// 循环播放 (BackgroundAudioManager需要重新设置src)
|
|
|
|
bgMusic.src = this.globalData.musicSrc;
|
|
|
|
bgMusic.play();
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
// InnerAudioContext 方式
|
|
|
|
bgMusic.onPlay(() => {
|
|
|
|
this.globalData.isMusicPlaying = true;
|
|
|
|
});
|
|
|
|
|
|
|
|
bgMusic.onPause(() => {
|
|
|
|
this.globalData.isMusicPlaying = false;
|
|
|
|
});
|
|
|
|
|
|
|
|
bgMusic.onStop(() => {
|
|
|
|
this.globalData.isMusicPlaying = false;
|
|
|
|
});
|
|
|
|
|
|
|
|
bgMusic.onEnded(() => {
|
|
|
|
// InnerAudioContext设置了loop不需要手动重新播放
|
|
|
|
this.globalData.isMusicPlaying = false;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存到全局
|
|
|
|
this.globalData.bgMusic = bgMusic;
|
|
|
|
|
|
|
|
// 创建全局方法供其他页面调用
|
|
|
|
uni.$bgMusic = {
|
|
|
|
play: () => {
|
|
|
|
if (bgMusic && bgMusic.play) {
|
|
|
|
bgMusic.play();
|
|
|
|
}
|
|
|
|
return this.globalData.isMusicPlaying;
|
|
|
|
},
|
|
|
|
pause: () => {
|
|
|
|
if (bgMusic && bgMusic.pause) {
|
|
|
|
bgMusic.pause();
|
|
|
|
}
|
|
|
|
return this.globalData.isMusicPlaying;
|
|
|
|
},
|
|
|
|
toggle: () => {
|
|
|
|
if (!bgMusic) return false;
|
|
|
|
|
|
|
|
if (this.globalData.isMusicPlaying) {
|
|
|
|
if (bgMusic.pause) bgMusic.pause();
|
|
|
|
} else {
|
|
|
|
if (bgMusic.play) bgMusic.play();
|
|
|
|
}
|
|
|
|
return this.globalData.isMusicPlaying;
|
|
|
|
},
|
|
|
|
isPlaying: () => this.globalData.isMusicPlaying
|
|
|
|
};
|
|
|
|
} catch (err) {
|
|
|
|
console.error('初始化背景音乐失败:', err);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
updateMusicSrc(newSrc) {
|
|
|
|
this.globalData.musicSrc = newSrc;
|
|
|
|
if (this.globalData.bgMusic) {
|
|
|
|
this.globalData.bgMusic.src = newSrc;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
/*每个页面公共css */
|
|
|
|
@import '@/uni_modules/uni-scss/index.scss';
|
|
|
|
@import "@/static/css/base.css";
|
|
|
|
|
|
|
|
/* #ifndef APP-NVUE */
|
|
|
|
// 设置整个项目的背景色
|
|
|
|
page {
|
|
|
|
background-color: #f5f5f5;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* #endif */
|
|
|
|
.example-info {
|
|
|
|
font-size: 14px;
|
|
|
|
color: #333;
|
|
|
|
padding: 10px;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* 清除按钮默认样式 */
|
|
|
|
button::after {
|
|
|
|
border: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes bounce {
|
|
|
|
|
|
|
|
0%,
|
|
|
|
20%,
|
|
|
|
50%,
|
|
|
|
80%,
|
|
|
|
100% {
|
|
|
|
transform: translateY(0);
|
|
|
|
}
|
|
|
|
|
|
|
|
40% {
|
|
|
|
transform: translateY(-20rpx);
|
|
|
|
}
|
|
|
|
|
|
|
|
60% {
|
|
|
|
transform: translateY(-10rpx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* 音乐控制按钮动画 */
|
|
|
|
@keyframes rotate {
|
|
|
|
from {
|
|
|
|
transform: rotate(0deg);
|
|
|
|
}
|
|
|
|
|
|
|
|
to {
|
|
|
|
transform: rotate(360deg);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* 隐藏微信小程序默认音频组件 */
|
|
|
|
#mp-audio {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
</style>
|