想了解SounManager播放器ID

Moh*_*mer 5 javascript jquery soundmanager2

我正在使用soundmanager的bar-ui js.

http://www.schillmania.com/projects/soundmanager2/demo/bar-ui/
Run Code Online (Sandbox Code Playgroud)

我有很多玩家所以我不知道在页面加载播放器加载时我想要的是什么.

http://support.simplepodcaster.com/auto-timestamps/
Run Code Online (Sandbox Code Playgroud)

看我在我的页面上有三个玩家我想要....

我试过了

var mySoundObject = soundManager.createSound({
id: 'mySound',
url: '/audio/mysoundfile.mp3',
// optional sound parameters here, see Sound Properties for full list
volume: 50,
autoPlay: true,
whileloading: function() {
        jQuery(".playercontent").data('sound-id', this.id);
}
});
Run Code Online (Sandbox Code Playgroud)

但问题是我可以获得声音,直到我玩,否则我无法得到身份证.

页面加载时有没有办法获取id?

Evh*_*vhz 3

当你使用createSound()它时可以生成一个 id,或者被分配一个 id(就像你现在所做的那样)。

在您粘贴的示例中,您提供了一个 id,因此您将覆盖从 soundmanager 创建的它。那就是你的声音将会有id='mySound'。按照文档,您可以看到我在这里写的内容。

相反,如果您创建声音(或您的情况下的播放器),您可以为每个声音设置一个 id,例如,通过使用该播放器的 mp3 曲目的名称或 url 创建一个哈希(这样,您可以找到您的声音)稍后通过您可以生成的 id 发出声音

像这样的东西:

var url='/audio/mysoundfile.mp3';
var id=md5(url); // hash it here

var mySoundObject = soundManager.createSound({
   id: id,
   url: url,
   // optional sound parameters here, see Sound Properties for full list
   volume: 50,
   autoPlay: true
   //whileloading: function() {
        //jQuery(".playercontent").data('sound-id', this.id);
   //}
});

jQuery(".playercontent").data('sound-id', id);
Run Code Online (Sandbox Code Playgroud)

或者简单地获取一个 id,如下所示:

var mySoundObject = soundManager.createSound({
   url: '/audio/mysoundfile.mp3',
   // optional sound parameters here, see Sound Properties for full list
   volume: 50,
   autoPlay: true,
   // whileloading: function() {
      // jQuery(".playercontent").data('sound-id', this.id);
   // }
});

console.log(mySoundObject.id);
jQuery(".playercontent").data('sound-id', mySoundObject.id);
Run Code Online (Sandbox Code Playgroud)

对于这两种情况,您可以使用以下方法直接获取您在站点中创建的任何声音/播放器:

var track='/audio/mysoundfile.mp3';
var id= md5(track);
var mySoundObject = soundManager.getSoundById(id);
Run Code Online (Sandbox Code Playgroud)

从另一面来看,您可以使用回调,例如setVolume()或强制加载 mp3 文件(SMSound 对象中的任何方法都 this.id 在上下文中具有可用的字段)。

但是,实际上没有必要使用类似的东西来获取声音/播放器的 ID。

也许有了这些信息,您可以更好地组织网站上的玩家。