java播放音乐文件_Java播放音频文件(MP3)

package com.what21.audio;

import java.io.File;

import javax.media.CachingControl;

import javax.media.Control;

import javax.media.Controller;

import javax.media.ControllerAdapter;

import javax.media.ControllerEvent;

import javax.media.ControllerListener;

import javax.media.EndOfMediaEvent;

import javax.media.Format;

import javax.media.Manager;

import javax.media.MediaLocator;

import javax.media.Player;

import javax.media.PlugInManager;

import javax.media.Time;

import javax.media.format.AudioFormat;

public class SimplePlayer {

/**

* @param args

* @throws Exception

*/

public static void main(String[] args) throws Exception {

Format input1 = new AudioFormat(AudioFormat.MPEGLAYER3);

Format input2 = new AudioFormat(AudioFormat.MPEG);

Format output = new AudioFormat(AudioFormat.LINEAR);

PlugInManager.addPlugIn(

"com.sun.media.codec.audio.mp3.JavaDecoder",

new Format[]{input1, input2},

new Format[]{output},

PlugInManager.CODEC

);

String name = "F:\\Music\\MP3\\一生无悔.mp3";

File file = new File(name);

echo("媒体文件:" + file.getAbsolutePath());

MediaLocator locator=new MediaLocator(file.toURI().toURL());

// 创建一个播放器对象

Player audioPlayer = Manager.createRealizedPlayer(locator);

echo("开始播放..");

audioPlayer.start();

// 播放控制

Control[] controls = audioPlayer.getControls();

for (int i = 0; i < controls.length; i++) {

CachingControl cachingControl = null;

if (controls[i] instanceof CachingControl) {

cachingControl = (CachingControl) controls[i];

}

System.out.println(cachingControl);

}

// 控制监听

audioPlayer.addControllerListener(new ControllerAdapter() {

public void endOfMedia(EndOfMediaEvent e) {

Controller controller = (Controller) e.getSource();

controller.stop();

controller.setMediaTime(new Time(0));

controller.deallocate();

}

});

// 控制监听

audioPlayer.addControllerListener(new ControllerListener(){

public void controllerUpdate(ControllerEvent event) {

if (event instanceof javax.media.RealizeCompleteEvent) {

System.out.println(event);

}

}

});

Thread.sleep(1000 * 20);

// 结束播放

audioPlayer.stop();

echo("done");

}

/**

* @param msg

*/

public static void echo(String msg){

System.out.println(msg);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值