OGeek|极客世界-中国程序员成长平台

标题: javascript - 钛音乐播放器进度事件监听器状态未触发 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 17:37
标题: javascript - 钛音乐播放器进度事件监听器状态未触发

我的音乐播放器没有更新进度。

暂停和播放音乐没有问题,例如:

if (music.isPlaying()) {
    var btnsrc = '../images/btn_pause.png'
} else {
    var brnsrc = '../images/btn_play.png';
}

var playButton = Ti.UI.createButton({
    title: '',
    backgroundImage: '../images/btn_pause.png',
    width:34,
    height:34,
    top:10,
    left:10
});

playButton.addEventListener('click',function(e){
    if (!music.isPaused()) {
        music.pause();
    } else {
        music.play();
    } 
});

但是当我添加事件监听器时,它永远不会触发:

if (!music.isPlaying()) {   
    Ti.API.info('novid=' + robj.curel);     
    var nove = {index: robj.curel+2, rowData: {}};
    nove.rowData.tourid = robj.tour;
    dispLocDetails(nove);
    music = Ti.Media.createSound({url:"../sounds/" + playlist[0].id + ".mp3"});     
    music.play();   
    music.complete = function(){        
        playlist.splice(0,1)        
        if (playlist.length!=0){
            music = Ti.Media.createSound({url:"../sounds/" + playlist[0].id + ".mp3"});                 
            music.play();                                                   
        }   
    };

    music.addEventListener('progress',function(e) {
        Ti.API.info('Time Played: ' + Math.round(e.progress) + ' milliseconds');    
    }); 
}

有什么想法吗?



Best Answer-推荐答案


您正在向 Ti.Media.Sound 添加事件监听器寻找 progress 事件的对象。此对象仅发出 changecompleteerrorinterruptedresume 事件.您要查找的对象是 Ti.Media.AudioPlayer .

此外,使用 AudioPlayer,您无需重新创建整个对象即可跳到下一首轨道。只需使用 setUrl() 方法:

music.setUrl("../sounds/" + playlist[0].id + ".mp3");  

关于javascript - 钛音乐播放器进度事件监听器状态未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20829207/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4