weixin_58412143 2021-06-01 14:29 采纳率: 90.9%
浏览 448
已采纳

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条)

报告相同问题?

悬赏问题

  • ¥15 帮我写一个c++工程
  • ¥15 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教