使用 sencha touch 2,在轮播中,当我向前或向后滑动到下一张卡时,如何停止当前卡上的音频?
{
xtype: 'carousel',
iconCls: 'action',
style: 'background-color: #00A9A6;',
layout: { type:'hbox', pack:'start', align:'stretch' },
items: [
Ext.create('Ext.Container', { layout: 'hbox',
items: [
{
items: [ { xtype: 'toolbar',
docked: 'left',
layout: { type:'hbox', pack:'start', align:'stretch' },
html: [
"<audio id=\"player1\"><source src=\"audio/page 1.mp3\" type=\"audio/mpeg\"></audio><div style=\"position:relative;height:1500px;width:100px;margin:auto;\"><button class=\"pausebutton\" onclick=\"document.getElementById('player1').pause()\"></button><br/><button class=\"playbutton\" onclick=\"document.getElementById('player1').play()\"></button></div>"
].join("")
}],
},
image_1
]
}),
Ext.create('Ext.Container', { layout: 'hbox',
items: [
{
items: [ { xtype: 'toolbar',
docked: 'left',
layout: { type:'hbox', pack:'start', align:'stretch' },
html: [
"<audio id=\"player2\"><source src=\"audio/page 2.mp3\" type=\"audio/mpeg\"></audio><div style=\"position:relative;height:1500px;width:100px;margin:auto;\"><button class=\"pausebutton\" onclick=\"document.getElementById('player2').pause()\"></button><br/><button class=\"playbutton\" onclick=\"document.getElementById('player2').play()\"></button></div>"
].join("")
}],
},
image_2
]
})
}
大约有 30 张类似的幻灯片,每张都有一张图片和一个带有自定义播放和暂停按钮的工具栏。奇怪的是,当我滑动到下一张幻灯片时,上一张幻灯片的音频仍在播放,如果我再次滑动到第三张幻灯片,第一张幻灯片的音频就会停止。我希望它停在第二张幻灯片上。我会试试 activeitemchange 监听器。
监听器添加到轮播:
listeners:{
activeitemchange:function()
{
var activeIndex = this.getActiveIndex();
document.getElementById('player'+activeIndex).pause();
}
}