当前播放完成后可以使用啥功能继续播放音频

Posted

技术标签:

【中文标题】当前播放完成后可以使用啥功能继续播放音频【英文标题】:What function can be used to keep playing audio after current one is done当前播放完成后可以使用什么功能继续播放音频 【发布时间】:2022-01-16 08:36:18 【问题描述】:

我正在尝试在当前歌曲播放完毕后播放播放列表/专辑中的下一首歌曲。我能够播放一首歌曲,但在当前歌曲播放完毕后它不会移动到下一首歌曲。

这是我的代码:

<button class="controlButton play" title="Play" @click="play" v-if="!isPlaying">
   <img src="storage/icons/play.png" >
</button>
<button class="controlButton pause" title="Pause" @click="pause" v-else>
   <img src="storage/icons/pause.png" >
</button>
<script>
import  Link  from "@inertiajs/inertia-vue3";
export default 
    components: 
        Link
    ,
    data() 
        return 
            audio: new Audio(),
            currentSong: ,
            myWidth: 0,
            loop:,
            index: 0,
            songs: [
                
                    title: 'Song',
                    artist: 'Artis A',
                    src: '/storage/audio/song.mp3',
                    cover: '/storage/images/cover.jpeg',
                ,
                
                    title: 'Song 2',
                    artist: 'Artis B',
                    src: '/storage/audio/song2.mp3',
                    cover: '/storage/images/cover2.jpeg',
                ,
 mounted() 
        this.currentSong = this.songs[this.index];
,
methods: 
play(song) 
            if(typeof song.src != 'undefined') 
                this.currentSong = song;
                this.audio.src = this.currentSong.src

            
            this.audio.play();
            this.isPlaying = true
            this.activeItem = this.currentSong
        ,
 pause() 
            this.audio.pause();
            this.isPlaying = false;
        ,

如何在当前播放完毕后播放第二首歌曲,并在没有歌曲时将按钮更改回播放。

【问题讨论】:

【参考方案1】:

Audio 对象(它是一个 htmlAudioElement,它继承自 HTMLMediaElement)公开了一个 ended 事件,您可以收听该事件。

mounted() 
    this.audio.addEventListener('ended', (event) => 
        // go to next song
    )

【讨论】:

你如何将播放按钮更改为没有下一首歌的暂停? @Henry 添加另一个此ended 回调可以设置的变量,并更新播放按钮的v-if 以包含该变量。

以上是关于当前播放完成后可以使用啥功能继续播放音频的主要内容,如果未能解决你的问题,请参考以下文章

停止录音并继续播放音频

在 iOS 中使用控件播放音频

React Native Expo 音频 |从最新位置播放直播

小程序 - 音频能力介绍

使用当前音频 javascript 创建播放/暂停功能

在 iOS 上关闭视图控制器后如何继续播放音频?