使用媒体元素显示音频库

时间:2015-10-21 作者:artist learning to code

你好,我正在为多媒体服务创建一个主题,我需要一个音频库。我正在寻找一种使用内置mediaelementplayer的方法。它“有点”管用,但我有几个问题。。。

我需要多个播放器,因为每个播放器显示不同的音频。我使用的脚本通过其ID“抓取”播放器,但我猜每个帖子(来自帖子类型)都是动态的,所以我不知道如何在我的js中调用php变量。

因为它通过ID抓取玩家,所以第一个玩家显示并播放所有内容,但其他玩家不工作。

我的部分短代码是:

    <?php if(get_post_meta($value->ID, \'portfolio_audio\', true)!=\'\'){ ?>
    <div class="audio-player">
    <h2><?php echo $value->post_title?></h2>
    <audio id="audio-player" src="<?php echo $audio_url; ?>" type="audio/mp3" controls="controls"></audio>
  </div><!-- @end .audio-player -->
我的js在另一个文件中,是这样的:

    $(function(){
$(\'#audio-player\').mediaelementplayer({
alwaysShowControls: true,
features: [\'playpause\',\'progress\',\'volume\'],
audioVolume: \'horizontal\',
audioHeight: 70,
iPadUseNativeControls: true,
iPhoneUseNativeControls: true,
AndroidUseNativeControls: true
});
}); 
有人能给我指出正确的方向吗?谢谢

1 个回复
SO网友:Aric Watson

听起来您需要为每个音频播放器设置唯一的ID。

尝试将您的PHP更改为:

<?php if(get_post_meta($value->ID, \'portfolio_audio\', true)!=\'\'){ ?>
<div class="audio-player">
<h2><?php echo $value->post_title?></h2>
<audio id="audio-player-<?php echo $value->ID; ?>" src="<?php echo $audio_url; ?>" type="audio/mp3" controls="controls"></audio>
</div><!-- @end .audio-player -->
这应该给每个音频播放器一个唯一的ID。

然后,在javascript中,您需要遍历页面上的所有音频播放器,并在每个播放器上设置mediaelementplayer。尝试以下操作:

$( document ).ready(function() {
    /* -- loop through each player on the page and find it\'s ID -- */
    $(\'.audio-player\').each(function(){ 
        var player_id = $(this).attr(\'id\');
        setupPlayer(player_id); // call this new function to setup the player
    });
});

function setupPlayer(player_id) { 
    $(player_id).mediaelementplayer({
        alwaysShowControls: true,
        features: [\'playpause\',\'progress\',\'volume\'],
        audioVolume: \'horizontal\',
        audioHeight: 70,
        iPadUseNativeControls: true,
        iPhoneUseNativeControls: true,
        AndroidUseNativeControls: true
    });
}
我还没有测试过这个,但它似乎应该可以工作。

相关推荐

audio link produces black box

在chrome和firefox(可能还有其他浏览器)中,音频链接不会呈现媒体控制器。例如。[audio http://example.com/wp/wp-content/uploads/2011/09/file.mp3] 在Chrome中,查看页面源代码就地显示此代码:<div id=\"mep_0\" class=\"mejs-container\" style=\"width: 400px; height: 30px; \"> <div class=\"