我制作了一个播放音频文件的播放器。我希望播放器在完成一首歌曲后播放一首歌曲。寻求帮助以解决此问题

Posted

技术标签:

【中文标题】我制作了一个播放音频文件的播放器。我希望播放器在完成一首歌曲后播放一首歌曲。寻求帮助以解决此问题【英文标题】:I've make a player that plays the audio files. I want the player to play a song after it finishes one.. Seeking for help in solving this 【发布时间】:2013-12-03 09:56:01 【问题描述】:

这是链接到第一首歌曲的部分。

    <html>
    <a href="pelay.html"> Play Song </a>
    </html>

这是链接所在的位置,点击链接后会自动播放音频。

    <html>
    <body>
    <meta http-equiv="refresh" content="0; url=file:///C:/Users/Mau%20Mao/Music/music/Change.mp3" />
    </body>
    </html>

如何控制播放器播放下一首歌曲?

【问题讨论】:

恕我直言,您几乎不能称其为“音频播放器”。查看 HTML5 audio 元素。 你所做的只是将浏览器重定向到文件,内置的音频播放器正在播放它。最好的方法是使用 HTML5 audio 元素,我相信当歌曲完成时会有一个 javascript 回调。 演示:jsfiddle.net/mUB78/1 var song = ['mysong', 'song2', 'song3'];变量索引 = 0; function nextSong() alert('Triggered'); $('#player').attr('src', 歌曲[index++]); $("#player").bind('end', nextSong); $(document).ready(function() nextSong(); );我能知道,代码是如何工作的吗? 我已经在下面发布了答案。 【参考方案1】:

因为我被要求解释我在 cmets 中发布的fiddle [更新]:


<audio id="player" controls="true" autoplay="true"></audio>

这是音频播放器元素。这是实际播放音频的部分。它由浏览器呈现,因此可能会因浏览器和/或操作系统而异。在 Chrome 中它看起来像这样: 因为我添加了controls 属性你可以看到。如果您要删除控制属性,您将能够听到音频,但无法控制任何音频。 autoplay 告诉浏览器在加载音频后立即开始播放。

var songs = ['song1.mp3', 'song2.mp3', 'song3.mp3'];

这定义了一个名为songs 的新数组,其中包含三首歌曲的URL。只需将, 'song4.mp3' 附加到最后一个值即可添加更多内容。

var index = 0;

这定义了一个新变量,它将包含我们正在播放的歌曲的编号。这意味着当数字等于0 时,它将播放第一个条目,1 播放第二个条目,依此类推(数组从 0 开始)。

function nextSong()
    alert('Triggered');
    $('#player').attr('src', songs[index++]);

这创建了一个名为nextSong 的新函数,它在运行时会将音频播放器的 URL 更改为数组中的下一首歌曲。它是如何从 ID 中选择播放器的,并使用索引号将属性 (attr) src (source) 设置为歌曲数组中的条目,然后将索引加一以便下次它会显示列表中的下一首歌曲。

$("#player").bind('ended', nextSong);

在这里,它将音频播放器上的ended 事件“绑定”到下一首歌曲功能。这意味着当它完成播放(一首歌曲的结尾)时,它会运行 nextSong 函数,该函数将源更改为下一首歌曲,并再次开始播放。

$(document).ready(function()
    nextSong();
);

所有这些都是在加载页面时运行一次nextSong 函数以手动启动它,但由于音频播放器上的autoplay 属性可能不需要。


我知道可能有更有效的方法可以做到这一点,但我尽量保持简单,以便提问者理解代码。

【讨论】:

以上是关于我制作了一个播放音频文件的播放器。我希望播放器在完成一首歌曲后播放一首歌曲。寻求帮助以解决此问题的主要内容,如果未能解决你的问题,请参考以下文章

如何让用户选择音频文件并在 Java 中播放

有没有办法制作只能播放一次的音频文件?

如何在 Racket 中播放 mp3/音频文件?

如何在音频单元扩展(实时进程)中为音频文件播放分配内存?

Android制作简易的音乐播放器和视频播放器

Android制作简易的音乐播放器和视频播放器