摘要
随着多媒体技术的发展和人们对音频,视频数据的需求,越来越多的软件加入了多媒体功能。
JMF(Java Media Framework API)是一种采用Java语言开发流式媒体应用应用程序接口。它作为Java Media API技术家族的一个重要组成部分,对Java平台进行了扩展,为媒体应用开发人员提供了增强的媒体开发能力。Java多媒体框架中包含了许多用于处理多媒体的API,所支持的功能包括:可以在Java Applet和应用程序中播放各种媒体文件,例如AU、AVI、MIDI、MPEG、QuickTime和WAV等文件;可以播放从互联网上下载的媒体流;可以利用麦克风和摄像机一类的设备截取音频和视频,并保存成多媒体文件;处理多媒体文件,转换文件格式;向互联网上传音频和视频数据流;在互联网上广播音频和视频数据等。
本系统旨在使用JMF编写一个音频播放器,实现一般播放器的功能,并加入一些当前的播放器不支持的功能。
关键词:Java2标准版;Java多媒体框架;MP3播放器
随着多媒体技术的发展和人们对音频,视频数据的需求,越来越多的软件加入了多媒体功能。
JMF(Java Media Framework API)是一种采用Java语言开发流式媒体应用应用程序接口。它作为Java Media API技术家族的一个重要组成部分,对Java平台进行了扩展,为媒体应用开发人员提供了增强的媒体开发能力。Java多媒体框架中包含了许多用于处理多媒体的API,所支持的功能包括:可以在Java Applet和应用程序中播放各种媒体文件,例如AU、AVI、MIDI、MPEG、QuickTime和WAV等文件;可以播放从互联网上下载的媒体流;可以利用麦克风和摄像机一类的设备截取音频和视频,并保存成多媒体文件;处理多媒体文件,转换文件格式;向互联网上传音频和视频数据流;在互联网上广播音频和视频数据等。
本系统旨在使用JMF编写一个音频播放器,实现一般播放器的功能,并加入一些当前的播放器不支持的功能。
关键词:Java2标准版;Java多媒体框架;MP3播放器
Design And Implementation Of Mp3 Player Based-on J2SE
Abstract
With the development of multimedia technology and the urgent requirement of people to multimedia data, more and more applications integrate multimedia functionality.
JMF is an application program interface which adopts Java language to develop stream media application. As an important part of Java Media API family, it greatly extends Java language and provides enhanced media process ability for media application developers. JMF contains many APIs used to process multimedia, it supports: plays different kinds of media files in Java Applets and Java applications, including AU, AVI, MIDI, MPEG, QuickTime, WAV and so on; plays media stream downloaded from the Internet; uses devices such as microphone and video camera to capture audio or video, and saves them as multimedia files; processes media files, converts format among different types; uploads audio or video data stream to Internet; broadcasts audio or video data stream.
This system is supposed to write a program based-on JMF to play audio file, it implements functionalities just as the other typical mp3 player has done, and it also has some features that unsupported by those players.
Abstract
With the development of multimedia technology and the urgent requirement of people to multimedia data, more and more applications integrate multimedia functionality.
JMF is an application program interface which adopts Java language to develop stream media application. As an important part of Java Media API family, it greatly extends Java language and provides enhanced media process ability for media application developers. JMF contains many APIs used to process multimedia, it supports: plays different kinds of media files in Java Applets and Java applications, including AU, AVI, MIDI, MPEG, QuickTime, WAV and so on; plays media stream downloaded from the Internet; uses devices such as microphone and video camera to capture audio or video, and saves them as multimedia files; processes media files, converts format among different types; uploads audio or video data stream to Internet; broadcasts audio or video data stream.
This system is supposed to write a program based-on JMF to play audio file, it implements functionalities just as the other typical mp3 player has done, and it also has some features that unsupported by those players.
Key Words:J2SE;JMF;MP3 Player
目 录
1引言 1
1.1项目背景 1
1.2技术现状与发展趋势 1
1.3论文组织结构 2
2通讯录备份在哪里技术背景 3
2.1JMF结构 3
2.1.1 定义JMF 3
2.1.2 JMF高层结构 3
2.1.3 时间模型 4
2.1.4 管理器 4
2.1.5 事件模型 5
2.1.6 数据模型 5
2.1.7 控制 6
1引言 1
1.1项目背景 1
1.2技术现状与发展趋势 1
1.3论文组织结构 2
2通讯录备份在哪里技术背景 3
2.1JMF结构 3
2.1.1 定义JMF 3
2.1.2 JMF高层结构 3
2.1.3 时间模型 4
2.1.4 管理器 4
2.1.5 事件模型 5
2.1.6 数据模型 5
2.1.7 控制 6
2.2 重要实例:Player对象 6
3系统分析与设计 16
3.1 系统概述 16
3.2 详细说明 17
3.2.1 Mp3Player类 17
3.2.2 AudioMedia类 18
3.2.3 AdvancedList类 19
3.2.4 ResourceManager类 20周星驰朱茵再次相见
3.2.5 TypeFilter类 21
4 系统的实现 22
4.1 监听鼠标事件 22
4.2 最近播放列表和简单收藏夹列表的动态刷新 24
4.3 支持文件批量操作 26
4.4 监听Player的状态改变 27
4.5 文件过滤器实现贺卡祝福语 30
3系统分析与设计 16
3.1 系统概述 16
3.2 详细说明 17
3.2.1 Mp3Player类 17
3.2.2 AudioMedia类 18
3.2.3 AdvancedList类 19
3.2.4 ResourceManager类 20周星驰朱茵再次相见
3.2.5 TypeFilter类 21
4 系统的实现 22
4.1 监听鼠标事件 22
4.2 最近播放列表和简单收藏夹列表的动态刷新 24
4.3 支持文件批量操作 26
4.4 监听Player的状态改变 27
4.5 文件过滤器实现贺卡祝福语 30
4.6 基于对象序列化的信息的存储和恢复 31
4.7 导出功能 34
5 结论 36
致 谢 37
4.7 导出功能 34
5 结论 36
致 谢 37
实例二:MP3音乐播放器
为了支持MP3的播放,我们必须添加MP3的SPI支持库。首先需要下载MP3的支持库。
:www.javazoom/。
下载页面:www.javazoom/mp3spi/sources.html。
下载地址:www.javazoom/mp3spi/sources/mp3spi1.9.4.zip。
下载文件:mp3spi1.9.4.zip。
将mp3spi1.9.4.zip中的3个JAR文件jl1.0.jar 、mp3spi1.9.4.jar 、tritonus_share.jar添加到当前项目中即可。
下面我们来实现一个MP3音乐播放器,实现的功能是:选择"文件"→"打开"命令弹出文件选择对话框,将选择目录的所有MP3和WAV文件加入到播放列表中,双击播放列表中的音乐文件实现音乐的播放和切换。
要实现该程序,首先需要提供了一个主程序窗口,该窗口提供了各种界面组件和操作事件的控制,并包含一个音乐播放的子线程,子线程由主线程控制。因此有以下两个类。
台湾的风景名胜音乐播放器主程序MusicPlayer.java。
播放线程PlayThread.java。
(1)音乐播放器主程序MusicPlayer.java
该类继承自Frame类,首先需要为该类添加文件播放的5个变量:
String filepath; //播放文件目录 String filename; //播放文件名称 AudioInputStream audioInputStream; //文件流 AudioFormat audioFormat; //文件格式 SourceDataLine sourceDataLine; //输出设备 |
并添加一个录音标志开关,控制录音的开始与停止:
boolean isStop = true; //控制播放线程 boolean hasStop = true; //播放线程状态 |
同时添加几个显示界面组件:
List list; //文件列表 Label labelfilepath; //播放目录显示标签 Label labelfilename; //播放文件显示标签 |
关于长江的古诗 |
在该程序的构造函数中,需要分别创建主窗体、菜单栏、文件列表组件、信息显示面板。并为菜单栏注册单击事件,为文件列表组件注册鼠标事件,为窗体注册关闭事件。
在菜单栏中选择"打开"选项时,执行打开函数open(),用以打开文件选择对话框,将选择目录的MP3和WAV文件添加到列表组件中。
文件列表组件在被鼠标双击时,取得被选择的文件名,并取得被选择的文件名,然后调用
播放函数play()进行播放。
窗口关闭事件发生时调用it(0)退出程序。
play()函数中在播放录音时,调用的是内部播放线程PlayThread.java来进行播放。该函数中首先会设置音乐的停止标志isStop=true,子线程在发现该变量为true时就会停止当前音乐的播放;由于从接收到停止指令到停止音乐的播放会需要一段时间,所以需要在play()中根据hasStop来执行一段时间的暂停,当子线程结束后该变量就会为陈冠希赵本山true,此时play()函数就会继续执行,读取音乐文件,并进行MP3文件的编码,创建新的子线程对象进行播放。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论