SoundManager2 - 使用 RTMP 不显示持续时间

Posted

技术标签:

【中文标题】SoundManager2 - 使用 RTMP 不显示持续时间【英文标题】:SoundManager2 - using RTMP not displaying duration 【发布时间】:2013-10-29 11:48:50 【问题描述】:

我正在使用 SoundManager2 通过 RTMP 流式传输 mp3 音频。问题是没有生成持续时间并且始终为0

var sound = soundManager.createSound(
            id: 'soundid',
            serverURL: 'rtmp://server/',
            url: 'file.mp3',
            autoLoad: true,
            autoPlay: false,
            onload: function() 
                console.log("DURATION: ", this.duration);
            ,
            whileplaying: function() 
                console.log(this.duration);
            ,
            volume: 100
        ).play();

是否可以使用 RTMP 获得持续时间?我也试过durationEstimate,这也显示0。

【问题讨论】:

【参考方案1】:

默认情况下Soundmanager2,带RTMP,不计算持续时间,相反,你应该提供它(以微秒为单位)作为参数,否则你将无法搜索(SetPosition(value)):

var sound = soundManager.createSound(
            id: 'soundid',
            serverURL: 'rtmp://server/',
            url: 'file.mp3',
            duration: 300000,//example for a 5 minutes song
            autoLoad: true,
            autoPlay: false,
            onload: function() 
                console.log("DURATION: ", this.duration);
            ,
            whileplaying: function() 
                console.log(this.duration);
            ,
            volume: 100
        ).play();

如果您没有 mp3 音乐的持续时间,请尝试使用 mp3 的 ID3 元数据获取它(您可以使用 javascript 获取它们)。

【讨论】:

以上是关于SoundManager2 - 使用 RTMP 不显示持续时间的主要内容,如果未能解决你的问题,请参考以下文章

SoundManager2 onid3() 未触发

如何在 Web Audio API 中将 SoundManager2 定义为媒体元素源

自动播放音频播放列表 SoundManager2 bar-ui

SoundManager2 - 停止声音时的失真

带SoundManager2的简单JavaScript音频播放器

不使用 Flash 在 WebView Android 中播放 RTMP