首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定制音频播放器JS和CSS的问题

定制音频播放器JS和CSS的问题
EN

Stack Overflow用户
提问于 2014-04-02 19:28:26
回答 2查看 221关注 0票数 0

我正在尝试创建一个包含12个不同声音文件的页面,并能够使用自定义音频播放器为每个文件播放、暂停、处理和静音。我已经创建了一个自定义的音频播放器类,但是让每个文件工作的唯一方法是给他们自己的ID,然后每次调用一个新函数。是否有一个更干净的方法来做到这一点,而不是让相同的功能重复12次?

代码语言:javascript
复制
<div id="column1">   
<ol>
    <li>
    <span class="name">Diaphragmatic Breathing</span>           
    <span class ="info"> -  Dr. Allan Vives,  Georgia Southern University</span> 
    <span class="time">(<a class = "readmore" href="http://studentsupport.georgiasouthern.edu/counseling/resources/self-help/relaxation-and-stress-management/" target="_blank"> Read More</a>, 9:15 Mins, 12.6MB)</span>

      <div class="audio-player">
      <audio id="audio-player" src="../audio/breathing/Diaphragmatic Breathing.mp3" type="audio/mp3" controls="controls"></audio>
      </div>        
    </li>
    </ol>

</div>    
<div id="column2">
    <ol>
        <li>
        <span class="name">Breathing Relaxation Exercise 4-6-8 </span>          
        <span class ="info"> - Jason Sackett, University of Southern California</span> 
        <span class="time">(<a class = "readmore" href="http://www.usc.edu/programs/cwfl/wellness/relaxation.html" target="_blank"> Read More</a>, 2:33 Mins, 2.9MB)</span>

          <div class="audio-player1">
          <audio id="audio-player" src="../audio/breathing/breathing_relaxation_exercise-4-6-8.mp3" type="audio/mp3" controls="controls"></audio>
          </div>        
        </li>


    </ol>
</div>   

<script type="text/javascript">
$(function(){
  $('#audio-player1').mediaelementplayer({
    alwaysShowControls: true,
    features: ['playpause', 'progress','volume'],
    audioWidth: 450,
    audioHeight: 70,
    iPadUseNativeControls: true,
    iPhoneUseNativeControls: true,
    AndroidUseNativeControls: true
  });
});

</script>

    <script type="text/javascript">
$(function(){
  $('#audio-player2').mediaelementplayer({
    alwaysShowControls: true,
    features: ['playpause', 'progress','volume'],
    audioWidth: 450,
    audioHeight: 70,
    iPadUseNativeControls: true,
    iPhoneUseNativeControls: true,
    AndroidUseNativeControls: true
  });
});

</script>

    <script type="text/javascript">
$(function(){
  $('#audio-player3').mediaelementplayer({
    alwaysShowControls: true,
    features: ['playpause', 'progress','volume'],
    audioWidth: 450,
    audioHeight: 70,
    iPadUseNativeControls: true,
    iPhoneUseNativeControls: true,
    AndroidUseNativeControls: true
  });
});

</script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-02 19:40:07

与其对每个元素使用id,不如给它们所有相同的类,然后只需要这样做一次:

代码语言:javascript
复制
$(function(){
  $('.className').mediaelementplayer({
    alwaysShowControls: true,
    features: ['playpause', 'progress','volume'],
    audioWidth: 450,
    audioHeight: 70,
    iPadUseNativeControls: true,
    iPhoneUseNativeControls: true,
    AndroidUseNativeControls: true
  });
});

其中.className是您选择给元素的任何类。

票数 0
EN

Stack Overflow用户

发布于 2014-04-02 20:06:03

或者,如果您不想触摸标记,可以通过将选择器的更改为

代码语言:javascript
复制
$("#audio-player1").mediaelementplayer({ ... });

代码语言:javascript
复制
// add this range generator
var fn = function(t,n,i){ return i>=n ? (t+n+" "+fn(t,n+1,i)) : ""; }
// use it to get a selector for all elements matching the resulting pattern
$(fn("#audio_player",1,12)).mediaelementplayer({ ... });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22821173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档