weixin_58412143 2021-06-01 14:29 采纳率: 91.6%
浏览 459
已采纳

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 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库