java简单视频播放器源码
从给定的文件信息来看,我们正在探讨一个基于Java的简单视频播放器的源代码,主要涉及了如何在Java环境中构建一个基本的音频与视频播放功能。以下是对该代码的关键知识点进行深入解析: ### 1. Java Media Framework (JMF) 的应用 Java Media Framework(JMF)是Java平台上的多媒体开发框架,它提供了处理音频、视频和其他时间相关的媒体流的API。在这个视频播放器源代码中,我们看到`JMF.jar`被明确地提及,这表明项目依赖于JMF库来实现多媒体功能。 ### 2. 初始化音频与视频捕获设备 在代码中,可以看到`initAudioCapDevLoc()`和`initVideoCapDevLoc()`两个方法用于初始化音频和视频的捕获设备。通过`CaptureDeviceManager.getDeviceList()`方法,根据特定的媒体格式(如音频的`AudioFormat.LINEAR`或视频的`VideoFormat.YUV`)获取系统中的可用设备列表,并从中选择一个作为默认的音频或视频输入源。 ### 3. 创建Player对象 接下来,`initAudioPlayer()`和`initVideoPlayer()`方法分别创建音频和视频的`Player`对象。这些`Player`对象由JMF提供,它们负责实际的媒体播放任务。创建过程中可能抛出`NoPlayerException`或`IOException`,这些异常需要被妥善处理以确保程序的健壮性。 ### 4. 监听Player状态变化 为了响应播放器的状态变化,如“已准备好”、“正在播放”等,代码中添加了对`ControllerListener`接口的实现。通过调用`addControllerListener(this)`方法,当前类注册为`Player`的监听器,从而能够接收并处理来自`Player`的事件,如`RealizeCompleteEvent`等。 ### 5. 控制Player的操作 在`controllerUpdate()`方法中,实现了对`ControllerEvent`的处理逻辑。例如,当接收到`RealizeCompleteEvent`事件时,意味着`Player`已经准备好,此时可以进一步操作其控制面板组件(如果有的话)。此外,还包含了停止和关闭播放器的功能,通过调用`stop()`和`close()`方法来释放资源,避免内存泄漏。 ### 总结 此Java视频播放器源代码展示了如何利用JMF库在Java中实现基本的多媒体播放功能。从设备的初始化、Player对象的创建到状态监听和控制,每个步骤都紧密关联且不可或缺。对于初学者而言,这是一个很好的学习案例,可以帮助理解Java多媒体编程的基本流程和技术要点。然而,值得注意的是,JMF自Java 6之后已被弃用,现代Java多媒体开发更多倾向于使用JavaFX或其他第三方库,因此在实际项目中可能需要考虑更先进的技术栈。
下载地址是:
http://www.oracle.com/technetwork/java/javase/download-142937.html
import java.awt.*;
import java.io.*;
import java.util.*;
import javax.media.*;
import javax.media.format.*;
import javax.swing.*;
public class VideoPlayer implements ControllerListener {
Vector audioCapDevList = null;
Vector videoCapDevList = null;
CaptureDeviceInfo audioCapDevInfo = null;
CaptureDeviceInfo videoCapDevInfo = null;
MediaLocator audioCapDevLoc = null;
MediaLocator videoCapDevLoc = null;
Player audioPlayer;
Player videoPlayer;
public void initAudioCapDevLoc() {
//这里可以填写其它的音频编码格式,具体请看AudioFormat类
audioCapDevList = CaptureDeviceManager.getDeviceList(new AudioFormat(
AudioFormat.LINEAR));
if ((audioCapDevList.size() > 0)) {
- sunsong1920172014-10-17感谢分享,虽然没怎么看懂
- qq_156963172016-07-07不错的东西
- mmxiaowang2018-05-06我这运行不了
- crr252015-12-03特别感谢,很实用!
- 粉丝: 16
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助