新手问题 [已解决] HTML 自带 audio 播放器无法外加控制

chairy11 · 2014年08月20日 · 最后由 chairy11 回复于 2014年08月21日 · 2133 次阅读

问题

弄个 FM 页面,CSS 已经写完了,本来写直接用 HTML5 的 audio 标签,简单弄个。结果发现还真不容易…… 大家有什么音频插件推荐吗? jplayer 和 SoundManager 2 看半天,头疼……有更简单的么?

从解决问题的角度来看,其实我需要的只是把能控制 audio 的元素对应到我自己的控制键上。 但不知道为什么,最简单的“播放 | 暂停”就一直无法奏效……

$play_pause_btn = $('#play_pause_btn')
$fm_audio = $('#fm_audio')
$play_pause_btn.click  ->
  if $fm_audio.paused
    $fm_audio.play()
  else
    $fm_audio.pause()
  return

解决方案

$fm_audio = $('#fm_audio').get(0)

详见 2 楼

浏览器自带的就够啦。

$fm_audio = $('#fm_audio').get(0)
$fm_audio.play()
$fm_audio.pause()

这些方法是 dom 对象的方法,如果没有使用 jQuery 其它插件,jQuery 对象是没有 play(), pause() 方法的

#1 楼 @flowerwrong 真的?我本来也这么想,但看到 jplayer 什么插件里面都有 swf 的后备选项,还在犹豫要不要弄得专业一点,如果连 firefox 都不支持 mp3 格式,那看起来好像范围太窄了……

#2 楼 @miclle 哎呀呀,太感激了!原来真的是少了个.get(0),有了这个就好了!谢谢谢谢!

5 楼 已删除

#2 楼 @miclle Hi, 另外再请教一下哦: 因为 currentTime 查询结果是秒,我想设置时间格式,比如 05:30,

secondToTime = (second) ->
  MM = Math.floor(second / 60)
  SS = Math.floor(second % 60)
  "#{0 if MM < 10 }#{MM}:#{0 if SS <10 }#{SS}"

这个代码的结果是,如果需要显示 0 时,可以正常显示。但如果不需要 0 时,它却会显示 undefine, (如果在 ruby 中,应该就为空,那就对了)。这个有什么处理方法吗?

#2 楼 @miclle #6 楼 @chairy11 哦,我弄好了,

secondToTime = (second) ->
  MM = Math.floor(second / 60)
  SS = Math.floor(second % 60)
  "#{MM}:#{if SS<10 then '0'+SS else SS }"
需要 登录 后方可回复, 如果你还没有账号请 注册新账号