网络电台系统的设计与实现

    林大华

    

    

    摘要:针对当前网络电台发展需要,该首先描述了网络电台的相关定义,其次在JAVA多媒体技术的基础上,设计并实现了一个基于JMF的网络电台软件,可以实现音频的实时通信传播。

    关键词:java媒体框架;音频;实时传输协议

    中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)12-0082-02

    如今的高速的网络信息时代,高速便捷的社会里,网络逐渐成为人类工作、学习、生活的必需物。网络电台的出现也成为了必然,网络电台代替传统的电台是一个时代进步的必然进程。网络电台是随着网络的发展,如今的网络技术给网络电台的出现提供了成熟的环境。网络电台的含义就是在网络上搭建的电台。网络电台就是把以前的电台搬到了互联网上,没有发射塔,有的只是快捷便利的网络,在这里没有麻烦的编录设备,可以享受到电脑的方便;只要使用电脑,随意一敲,就可以收听到电台的美妙。当前网络电台分为联播电台、商业电台、个人电台等等。与传统电台比较,网络电台的优势,一是迅捷性、无限性。二是交互性和个性化。在如今互联网上虽然已经拥有很多的用户,但是依然有着很大的潜力,可以挖掘更多的客户,这就为网络电台的出现和发展做了很好的铺垫。据调查,网络电台都是中学生与大学生用户为主,这些年轻受众为网络电台的经营提供了生存空间与可能。网络电台的作用更加大了,不仅局限在娱乐,更加的在现场监控及数据采集系统SCADA、分布式自动控制系统、小区智能安防系统、车船调度等上面都开始广泛的运用。

    本文所采用的方案是基于JAVA媒体框架,采用RTP/RTCP协议,在发送端和接收端之间进行一对一传输的网络电台系统。优点是确保媒体流在网络中低时延、高质量地传输。

    1 相关技术介绍

    1.1 流媒体技术

    流媒体技术也被叫为流式媒体技术.它的原理就是把压缩后的影像和声音信息放上网站服务器,让用户不用全部下载完成才能观看收听,而是边下载边观看、收听的网络传输技术。流媒体技术的原理是这样的:服务器在向用户传输多媒体文件时,不是一次将文件整体发送出去,而是按播放的时间顺序将其分为小的片断,类似于图像中的帧,然后将这些片断依次传给用户。用户的网络播放工具接收到这些片断后,连续播放,就可以产生完整的声音和图像,只是开始时有些延迟。网上直播时多媒体文件的产生也是不断生成新的片断。而且流媒体的声音、图像不会占用你的硬盘空间,流进你的机器后会继续流出你的机器,消失掉。为了保证声音、图像的播放效果,服务器与用户计算机间的网络传输速度有一定的要求。如果网络传输速度较慢,播放时就会出现断断续续的现象。很多网站可以根据用户的实际带宽,向用户提供不同清晰度的播放效果。一般来说,播放声音需要4kb/s以上的传输速度,图像需要每秒几十千比特到每秒几百千比特。

    1.2 JMF

    JMF是JAVA的扩展框架,允许用户制作纯音频流和视频流。Java媒体框架JMF(Java Media Framework)是一个把音频、视频和其他基于时间的媒体结合到Java程序和Applet中的应用程序接口。它让Java程序具有捕捉音频和视频信号,存储、播放并处理多媒体数据等功能,除此之外还能传输多媒体数据和编译多媒体数据格式。JMF包括了和RTP APIJMF API。前者主要是在网络上传输和接收媒体流,后者具有捕捉、处理、存储和播放媒体等功能。

    2 系统设计与实现

    2.1 系统设计

    本软件分为发送端与接收端两部分,下面分别介绍发送端与接收端的功能模块。

    发送端功能模块:

    1)音频采集和传输模块;

    接收端功能模块:

    1)音频接收和播放模块;

    2)总的功能模块图见图1。

    2.1.1 音频采集和传输模块的功能介绍

    此模块的功能主要实现从麦克风中采集音频,然后进行音频的编码,之后利用RTP协议在Internet网络中实时传输音频数据流。此模块当中需要设置接收端的IP地址和端口号。当发送端启动后,按照设置的IP地址和端口号来构造目的会话地址进行传输。

    2.1.2 音频接收和播放模块的功能介绍

    此模块的功能主要是利用RTP协议实时接收来自发送端的媒体数据流,并为每一种新接收到的媒体数据流产生一个播放器,一边接收媒体数据,一边将媒体数据播放出来。此模块当中需要输入发送端的IP地址和端口号,由此可以跟发送端建立连接。

    2.2 系统实现

    2.2.1 音频采集和传输模块的实现

    该模块中主要包括2大类。一个是AudioTransmit类用于音频数据流网络实时传输的。另一个类是AudioCapture是人机交互的用户界面类,该类中包含了main()方法,即它也是该模块的启动类。

    2.2.1.1 AudioCapture类

    包含以下几个成员函数:

    1)jbInit(),用来设置界面和添加事件的监听。

    2)buttonCaptureTransmit_actionPerformed(),用来响应开始音频采集和传输按钮消息。

    3)buttonStop_actionPerformed(),用来响应停止按钮消息。

    4)this_windowClosing(),用来响应窗口中的关闭按钮消息。

    2.2.1.2 RTPTransmit类

    包含以下几个主要成员函数:

    1)start(),用来启动RTP数据流传输。

    2)createProcessor(),用来指定的媒体定位器产生一个处理器。

    3)createTransmitter(),为处理器的每一个媒体磁道产生一个RTP会话。

    4)stop(),用来停止RTP数据流传输。

    5)waitForState(),等待处理器达到相应的状态。

    2.2.2 音频接收和播放模块的实现

    使用RTP协议实现媒体数据流接收和播放的类为RTPReceive。

    1)ReceiveStreamListener在实现监听接口好,NewReceiveStreamEvent事件被监听;

    2)NewReceiveStreamEvent在接收到这个,为了获取RTP数据源(DataSource)可以经过事件获取接收媒体数据流(Receivestream),然后接收媒体数据流。

    3)给Manager.createPlayer()传递数据源产生一个播放器。

    4)播放器添加了监听器,实现了播放器后,播放数据就可以显示了。

    RTP会话是在RTPManager管理器来通过管理的,RTP会话和表现媒体数据接收后,RTPReceive类需要实现SessionListener、ReceiveStreamListener和ControllerListener监听接口。

    在本模块中,还定义三个内部使用的类:SessionLable类用来解析用户输入的用于RTP会话的目的端(发送端)的IP地址和端口号、PlayWindow类用来实现完成播放器窗口的功能、PlayerPanel类用来为播放器在PlayerWindow窗口中添加视频组件和控制组件。

    2.2.3 基于JMF的网络电台软件的功能测试

    打开命令提示符窗口,用cd命令进入代码文件所在目录,输入javac *.java来编译test目录下的所有java文件(代码文件),然后输入java audiovideotransmit命令来启动软件,软件启动后,首先要设置接收端的IP地址、端口号这两个参数,点击开始音频采集和传输按钮后,就会接收到音频数据流并开始播放的界面,如图2所示。

    2 结束语

    虽然系统具备了一些优点和值得肯定的方面。但由于时间及水平有限,目前实现的网络电台软件还是比较粗糙的,还有很多方面可以有待提高:

    1)实现接收端的界面化,这样操作更加简便。

    2)增加文字图像功能,丰富电台形式。

    3)发送方播放文件,接收方将接受到的音频录制成文件。

    4)实现一对多的播放模式。

    参考文献:

    [1] 阮高峰, 吴培英, 阮招娣. 交流面对面: 走进视频通讯新天地[J]. 电脑知识与技术, 2004,10(13).

    [2] 陈杰. 新兴的网络视频[J]. 江苏通信技术, 2003, 19(4).

    [3] 李鹏伟. 局域网内点对点通信的Java实现[J]. 安阳师范学院学报, 2006, 23(2).

    [4] 毛学英. 电台广播发射机微控制器系统的设计与实现[J]. 数字技术与应用, 2016.1.

    [5] 刘立山. 高清非编制作网络系统设计及应用实践[J]. 世界广播电视, 2010(7).

    [6] 张佳. 广播电台音频传输与监控系统的设计和应用[J]. 电声技术, 2013(2).

    [7] 徐智娟. 广播电视台节目制作网络系统设计与应用[J]. 电子技术与软件工程, 2015(14).

    [8] 康缘. 共享广播信道的多频点小区组网设计[J]. 通讯世界:下半月, 2015(8).

    [9] 刘金国. 广播电视台直播间的设计和建设[J]. 辽宁广播电视技术, 2013(1).

    [10] 景长军. 广播电视后期制作设备管理系统的设计与实践[J]. 有线电视技术, 2005(24).

    [11] 魏三强, 朱军. 基于数字IP网络的智能小区广播系统设计[J]. 苏州科技学院学报: 自然科学版, 2012(4).

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建