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文件,增加如下配置:

1 <directory name="test/8000" path="$${sounds_dir}/test/8000">
2 <param name="rate" value="8000"/>
3 <param name="shuffle" value="false"/>
4 <param name="channels" value="1"/>
5 <param name="interval" value="20"/>
6 <param name="timer-name" value="soft"/>

3.執行reload_local_stream test/8000使配置生效。

4.執行conference 3000 play local_stream://test。

OK,試一下,是不是3000里的所有成員都能一直循環聽這個聲音了呢?




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM