javascript - Titanium 音乐播放器进度事件监听器状态未触发

标签 javascript ios audio titanium titanium-mobile

我有一个不更新进度的音乐播放器。

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

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');    
    }); 
}

有什么想法吗?

最佳答案

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

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

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

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

相关文章:

node.js - 将音频缓冲区从 44100 重新采样到 16000

javascript - 使用 CSS 和 JQUERY 在图像上显示标题

javascript - 单击表格行时,它会启用整个表格而不是一行,并且在选择获取值后取消定义

javascript - 有没有办法在 webpack 包输出(css/js 文件)中包含内部版本号?

ios - 在 Mac 应用程序中使用在 iOS 项目中创建的类

ios - Swift - 在 vi​​ewDidLoad() 之外声明变量的替代方法

ios - xcode 说找不到 ZBarSDK.h,但是它在我的项目中

android - 泛立体声音频Android

java - 在 Java 中同时运行两个类

javascript - Sailsjs findOrCreate 使用什么属性来查找记录是否存在?