weixin_58412143 2021-06-01 14:29 采纳率: 89.7%
浏览 449
已采纳

uniapp音频播放下一首时,要点击两下才能实现播放,怎么改

	newpage(index) {
				this.$u.route({
					url: 'pages/componentsD/playpage/index',
					params:  {	
						//传递参数
						id:index,
					}
				})
			},

上面是负责跳转页面

下面是跳转后的播放页面

<script>
	export default {
		data() {
			return {
				cur: 0,
				list: [],
				innerAudioContext: this.$innerAudioContext,
				ifplay: true,
				percent: 0,
				duration: 300,
				currentTime: 0,
				seek: true,
				oldsrc: '',
				newsrc: '',
				episodes: null,
				// loading:false
			}
		},
onLoad(option) {
			this.oldsrc = this.innerAudioContext.src;
			console.log('old1-' + this.oldsrc);
			if (option.id == 1) {
				this.episodes = 1;
			} else {
				this.episodes = 2;
			}
			this.getMusic();
		},
methods: {
			getMusic() {
				uni.request({
					url: 'http://10.40.16.51:8080/Test/selectDetail/' + this.episodes, //仅为示例,并非真实接口地址。
					data: {},
					header: {},
					success: (res) => {
						this.innerAudioContext.src = res.data.soundSource;
						console.log('old-' + this.innerAudioContext.src);
						this.newsrc = res.data.soundSource;
						console.log('new-' + this.newsrc);
						if (this.oldsrc == this.newsrc) {
							console.log('一样');
							this.percent = this.innerAudioContext.startTime;
							this.innerAudioContext.play();
							this.ifplay = false;
						} else {
							console.log('不一样');
							this.percent = 0;
							this.innerAudioContext.startTime = 0;
							this.innerAudioContext.currentTime = 0;
						}
					}
				});
				// this.innerAudioContext = this.$innerAudioContext;
			},
//以下是需要改正部分
next() {
				// this.innerAudioContext.pause()
				this.innerAudioContext.src=this.$innerAudioContext.src
				this.episodes=this.episodes+1
				this.getMusic()
				this.innerAudioContext.play()
				console.log('下一首' + this.episodes);
				console.log('-----' + this.innerAudioContext.src);
			},

main.js页面

Vue.prototype.$innerAudioContext=uni.createInnerAudioContext();

  • 写回答

2条回答 默认 最新

  • 易书生 2021-06-01 14:33
    关注

    this.getMusic()

     

    this.innerAudioContext.play()

     

    下面这个代码应该在上面的获取完成了在执行

    this.getMusic();是异步获取音频信息的,第一次可能没有获取完成

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条