var r = null;  
    function onPlusReady() {  
    r = plus.audio.getRecorder();  
    }  
    function dianji() {  
    if (r == null) {  
        alert("Device not ready!");  
        return;  
    }  
    r.record({  
        filename: "_doc/audio/"  
    }, function(recordFile) {  
        var player = plus.audio.createPlayer(recordFile);  
        var num = 0;  
              //player.play(function() {}, function() {});//当开始播放的方法执行后才能获取到音频流的总长度  
        setTimeout(function() {  
                num = player.getDuration();  
            alert(num);  
        },400)  
    }, function(e) {  
        alert(e);  
    });  
    };
如上代码,无法获取到音频流的总长度显示为NaN,如果执行播放的方法后就可以获取到了,这是bug还是设计如此?
            
            
            
            
5 个回复
DCloud_App_Array
5+ API规范没有规定需要播放后才能获取长度,可能各平台实现缺陷导致的问题
@DCloud_IOS_XTY @DCloud_Android_磊子 确认如何支持播放前可获取
Android_磊子
目前5+安卓平台确实需要在play之后才能获取时长。
春华秋实
做游戏使用,想解决流式播放
春华秋实
做游戏使用,想解决流式播放,实现语音消息的高效推送,怎么处理?
Android_磊子
Android平台可以尝试使用网络音频地址。
2016-12-19 20:04
春华秋实
问题是游戏需要ios和android互通,痛苦中
2016-12-24 09:48
小黄鸭 - IT宅
现在ios平台也是播放后才能获取到长度