`

html5音频组件实现在线广播、回播

阅读更多

最近做了一个微信里广播电台的一个在线收听、往期回播的功能,利用hmtl5的标签<audio>

这个项目从决定采用audio到最后实现可谓是一波三折,这里我主要介绍下我实现的过程和遇到的一些问题,希望对也想实现此功能的亲们能少走些弯路。

 

一、音频<audio>标签

 html5音频和视频功能完全取代对插件的依赖,方便使用,具体使用格式如下:

 

<audio id="player2" type="audio/mp3" controls>
   <source src="../../media/echo-hereweare.ogv">
   <source src="../../media/big_buck_bunny.webm">
   <source src="../../media/a.mp3">
  </audio>

 

这个的写法是为了让主流浏览器都支持,做测试的时候最好这么写,微信里只要mp3格式的就都支持

 

简写格式:

 

<audio id="player2" src="../../media/a.mp3" preload="none"  controls></audio>

 

ogv是html5中的一个名为Ogg Theora的视频格式,而且涉及到版权之类
的问题,各个浏览器比如ff、chrome之类的标准也不统一,FF只支持ogv,
而Safari则支持h264

WebM由Google提出,是一个开放、免费的媒体文件格式

 

各个浏览器支持的音频格式列表

 

    浏览器

          wave

          ogg/ogv

          aiff

          Mp3

            au

Firefox

×

×

×

Google Chrome

×

×

×

Safari

×

×

Opera

×

×

×

 

二、ios和android对音频的支持

 

因为是在微信里实现属于网页端,苹果和安卓系统对权限的控制是不一样的。

最初在我们产品效果图设计完,设计师设计的很全面,包括音量控制、前进后退、静音等。

ios声音控制没有放开权限,不允许,这个也是我纠结了很久才知道的,咨询了一个国外大师

 

1、在线广播支持格式:ios支持在线音频格式为m3u8

                                     andorid支持RTSP实时流协议

 

如果想要都支持必须得在服务器端转码,得到想要操作系统支持的音频格式,这个转码是技术核心,不容易实现需要时间

 

2、历史收听:mp3格式都支持

 

 

 

分享到:
评论

相关推荐

    Android开发应用实战详解源代码

    1.1.3 android组件结构 1.1.4 android应用程序框架 1.1.5 android的竞争优势 1.1.6 android模拟器 1.2 搭建android开发环境 1.2.1 准备工作 1.2.2 windows系统下的搭建过程 1.2.3 linux系统下的搭建过程 1.3 常见...

    android知识大总结【邯院】

    1. 广播接收者 3 2. 服务Service 7 3. AsyncTask异步处理任务 15 4. 音频播放 20 8. 视频播放 26 9. 使用摄像头拍照 32 10. 视频录制 39 11. 国际化 43 12. 样式和主题 46 13. 编码实现软件界面 49 14. 标签页(选项...

    Java2实用教程.rar

    第13章常见数据结构的Java实现 13 1链表 13 2栈 13 3树集 13 4树映射 13 5散列集 13 6散列表 13 7向量 习题 第14章图形与图像 14 1绘制文本 14 2绘制基本图形 14 3建立字体 14 4清除 14 5Java2D 14 6图形的布尔运算 ...

    疯狂Android讲义源码

     2.1.1 视图组件与容器组件 36  2.1.2 使用XML布局文件控制UI  界面 40  2.1.3 在代码中控制UI界面 41  2.1.4 使用XML布局文件和Java  代码混合控制UI界面 42  2.1.5 开发自定义View 43  2.2 布局管理器 46 ...

    疯狂Android讲义.part2

    18.6.2 实现GameService组件 619 18.6.3 获取触碰点的方块 620 18.6.4 判断两个方块是否可以相连 622 18.6.5 定义获取通道的工具方法 623 18.6.6 没有转折点的横向连接 625 18.6.7 没有转折点的纵向连接 626 18.6.8 ...

    疯狂Android讲义.part1

    18.6.2 实现GameService组件 619 18.6.3 获取触碰点的方块 620 18.6.4 判断两个方块是否可以相连 622 18.6.5 定义获取通道的工具方法 623 18.6.6 没有转折点的横向连接 625 18.6.7 没有转折点的纵向连接 626 18.6.8 ...

    knobs:Kubernetes本地开放广播软件

    旋钮Kubernetes本地开放广播软件这是一项正在进行的工作。 拉取请求已接受我们的留言世界在变化。 这意味着面对面的事件将不再像以前那样。 现在,在管理开放,安全,有趣,协作和有效的高质量数字事件时,行业中...

    Tasker_Pro_v5.9.2_beta3.apk

    * MISC :(广播)动作意图,组件意图,获取位置,GPS状态(或Cyanogen / submod),运行(ASE)脚本,说,说文件,关闭,搜索,设置剪贴板,重新引导(仅root),设置CPU(仅根用户)设置时区 *网络:飞行模式(或...

    具有AD9850 VFO的DIY敏感软件定义无线电的电路方案设计,内附代码-电路方案

    软件无线电(SDR)是一种无线电通信系统,传统上以硬件实现的组件(例如混频器,滤波器,放大器,调制器/解调器,检测器等)通过个人计算机或计算机上的软件实现。嵌入式系统。 在我以前的视频之一中,我描述了使用...

    realplayer

    或者 (vi) 在实时广播时使用 MP3 编码器(陆地、人造卫星、电缆或其它媒体)或者通过互联网及其它网络,例如,内部网(但不仅限于此)进行广播。 您也不得在付费音频或点播音频应用程序中使用 RealJukebox MP3 编码...

    Tasker Pro 5.7.0.apk

    * MISC :(广播)动作意图,组件意图,获取位置,GPS状态(或Cyanogen / submod),运行(ASE)脚本,说,对文件,关闭,搜索,设置剪贴板,重新启动(仅限root),设置CPU( root only)设置时区 *网络:飞行模式...

Global site tag (gtag.js) - Google Analytics