FreeSWITCH在会议室中持续播放音频文件
最近遇到一个客户需求,希望在会议室建立起来后,自动播放一段指定的声音。
已知会议室命令,假设建立起一个会议室号码3000,很容易实现以下功能:
一、播放一个声音文件一次
conference 3000 play /home/test.wav
二、播放一个声音文件二次
conference 3000 play file_string:///home/test.wav!/home/test.wav
三、播放不同的声音文件(原理同二)
conference 3000 play file_string:///home/test0.wav!/home/test1.wav
四、持续不停的播放一个声音文件
呃……其实绕弯路的方法是有的,监听会议室播放事件,一旦发现指定会议室的播放结束,就重新放一遍,直到会议室关闭……
有没有更优雅的方法呢?我想到了第一个进会议室的人,如果会议室里只有这一个人,那么TA会一直收到背景音乐的声音……
看看源代码,会议播放接口是一样的,那是为什么呢?
继续看看,啊哈,文件类型不一样!第一个人进会议室,播放的文件是local_stream://类型的!原理明白了,就好实现了……
1.把声音文件放置到合适的位置。
例如:/usr/local/freeswitch/sounds/test/8000路径下。
2.增加本地音频流配置,打开/usr/local/freeswitch/conf/autoload_configs/local_stream.conf.xml文件,增加如下配置:
<directory name="test/8000" path="$${sounds_dir}/test/8000">
<param name="rate" value="8000"/>
<param name="shuffle" value="false"/>
<param name="channels" value="1"/>
<param name="interval" value="20"/>
<param name="timer-name" value="soft"/>
3.执行reload_local_stream test/8000使配置生效。
4.执行conference 3000 play local_stream://test。
OK,试一下,是不是3000里的所有成员都能一直循环听这个声音了呢?
FreeSWITCH在会议室中持续播放音频文件的更多相关文章
- VC++中MCI播放音频文件 【转】
MCI播放mp3音频文件例程 源文件中需要包含头文件 Mmsystem.h,在Project->Settings->Link->Object/libray module中加入库 Wi ...
- Xcode模拟器中无法播放音频文件的原因分析
在本猫的Mac Mini上开发iOS app,发现当执行到播放音频的代码时,发生错误,log如下: 2015-10-05 07:22:17.122 LearnSpriteBuilder[10321:5 ...
- 关于Window Server2008 服务器上无法播放音频文件的解决方案
在偌大的百度当中查找我所需要的资源信息,但网络上所描述的都不能解决,发生此类问题的人很多,但是都没有得到准确的解决方法!经个人各方面的尝试,其实非常简单的解决了无法播放音频文件的问题,如果各位今后也遇 ...
- ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件
原文:ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件 先看效果图,然后上代码: <UserControl x:Class= ...
- .NET winform播放音频文件
前提:最近要求做一个在winform端做一个音频文件播放的功能,至此,总结最近搜寻的相关资料. 一.微软提供了三种方式来播放音频文件 1.通过System.Media.SoundPlayer来播放 2 ...
- C#调用mciSendString播放音频文件
mciSendString函数是一个WinAPI,主要用来向MCI(Media Control Interface)设备发送字符串命令. 一.函数的声明如下: private static exter ...
- Qt 播放音频文件
Qt播放音频文件的方法有好多中,简单介绍几种 不过一下几种方式都需要在Qt工程文件中添加 QT += multimedia 第一 QMediaPlayer类 可以播放MP3文件,同时使用也 ...
- h5 audio播放音频文件
h5 audio播放音频文件 注:下面html中样式及不相关的内容去掉了 第一个例子 播放没有防盗链的外网音频文件是可以的 <!doctype html> <html> < ...
- Unity 播放音频文件
Unity 播放音频文件参考代码: public void Play(string strSoundName, float autoDestroyTime = 0f, bool bLoop = fal ...
随机推荐
- iOS 里RGB 配色 UIColor colorWithRed
//比如rgb 色值为73. 148 .230 那么ios 里面要在后面加.0f 再除以255 [bline setBackgroundColor:[UIColor colorWithRed:73.0 ...
- Android开发点滴 - 如何使按钮水平垂直居中且始终占据屏幕宽度一半
问题描述: 如何使按钮水平垂直居中且始终占据屏幕宽度一半 效果如下: 竖屏: 横屏: 解决方案: 使用线性布局,指定线性布局的总权重(weightSum)为1, 指定按钮的权重为其一半即0.5 布局代 ...
- 【DB】MYSQL相关细节
在进行统计API模块测试时候,需要用SQL进行查询,并和API的返回结果进行对比: 而SQL中一些以前用过的细节需要记住: 补充一下show的部分用法: MySQL中有很多的基本命令,show命令也是 ...
- 两个自定义对象List列表取交集(intersection)
public static void main(String[] args) { List<Fpxx> list = ListUtils.intersection(getFpList1() ...
- Shiro整合springboot,freemaker,redis(含权限系统完整源码)
区块链技术联盟 2018-02-08 17:06:40 目录 一.导语 二.shiro功能介绍 三.shiro详解 四.shiro实战案例分享 五.系统配置 六.其他 一.导语 今天推荐给大家一个非常 ...
- html转译字符 字符实体
http://www.w3school.com.cn/html/html_entities.asp http://www.w3school.com.cn/tags/html_ref_entities. ...
- Codeforces Round #310 (Div. 1) B. Case of Fugitive(set二分)
B. Case of Fugitive time limit per test 3 seconds memory limit per test 256 megabytes input standard ...
- python binascii模块详解
['Error', 'Incomplete', 'b2a_hex', 'hexlify' #Hexadecimal representation of binary data. 字符串转16进制'a2 ...
- J2EE用监听器实现同一用户只能有一个在线
这里我们讨论的是已登陆或将要登陆的用户,游客不在讨论的范围之内.这一点大家应该很容易就能理解的吧. 那么我们应该怎样去实现同一用户只能有一个在线这样的一个小功能呢? 有人 ...
- xampp 修改 mysql 默认 root 密码
xampp 默认的 mysql 的 root 密码是空的,种种原因想给它加上. 最有效简单方法是使用 phpmyadmin. 初始状态下,我们可以使用 http://localhost/phpmyad ...