标题:[求助]关于JFrame中加载音乐文件的问题.
只看楼主
scoladi
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-2-3
得分:0 
每一种方法我都会试的,谢谢.

Java与你共枕.
2007-02-08 22:56
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 

首 先 让 我 们 复 习 一 下 在Applet 中 放 音 乐 的 四 个 步 骤, 代 码 如 下:

import java.applet.*;

AudioClip ac=getAudioClip (getCodeBase(), File);
// 创 建Audioclip 对 象 并 装 入.au 文 件
ac.play(); // 播 放 一 次
ac.stop(); // 停 止 播 放
ac.loop(); // 循 环 播 放

大 家 可 能 认 为 此 代 码 在Application 中 也 能 使 用, 但 不 幸 的 是 它 在 编 译 时 就 会 发 生 错 误。 因 为AudioClip 对 象(object) 和getAudioClip() 方 法(method) 都 是 属 于java.applet 包 的-- 它 在Application 中 无 法 调 用。

解 决 问 题 的 办 法 是 使 用 一 些Sun 在JDK 中 发 布 但 未 正 式 注 明(undocumented) 的 特 点。 用Winzip 或Zip 观 察 一 下class.zip 文 件 就 会 发 现 除 了java.applet 包 中 包 含 对 声 音 文 件 处 理 外, 在/sun/audio 目 录 下 的sun.audio 包 也 提 供 类 似 的 方 法。 下 面 是 实 现 代 码 和 注 释:

import sun.audio.*; // 引 入sun.audio 包
import java.io.*;

InputStream in = new FileInputStream (Filename);
// 打 开 一 个 声 音 文 件 流 作 为 输 入
AudioStream as = new AudioStream (in);
// 用 输 入 流 创 建 一 个AudioStream 对 象
AudioPlayer.player.start (as);
//“player” 是AudioPlayer 中 一 静 态 成 员 用 于 控 制 播 放
AudioPlayer.player.stop (as);


我在说's blog   http://www..cn
2007-02-08 22:57
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
得分:0 
以下是引用limaoyuan在2007-2-8 22:57:28的发言:

首 先 让 我 们 复 习 一 下 在Applet 中 放 音 乐 的 四 个 步 骤, 代 码 如 下:

import java.applet.*;

AudioClip ac=getAudioClip (getCodeBase(), File);
// 创 建Audioclip 对 象 并 装 入.au 文 件
ac.play(); // 播 放 一 次
ac.stop(); // 停 止 播 放
ac.loop(); // 循 环 播 放

大 家 可 能 认 为 此 代 码 在Application 中 也 能 使 用, 但 不 幸 的 是 它 在 编 译 时 就 会 发 生 错 误。 因 为AudioClip 对 象(object) 和getAudioClip() 方 法(method) 都 是 属 于java.applet 包 的-- 它 在Application 中 无 法 调 用。

解 决 问 题 的 办 法 是 使 用 一 些Sun 在JDK 中 发 布 但 未 正 式 注 明(undocumented) 的 特 点。 用Winzip 或Zip 观 察 一 下class.zip 文 件 就 会 发 现 除 了java.applet 包 中 包 含 对 声 音 文 件 处 理 外, 在/sun/audio 目 录 下 的sun.audio 包 也 提 供 类 似 的 方 法。 下 面 是 实 现 代 码 和 注 释:

import sun.audio.*; // 引 入sun.audio 包
import java.io.*;

InputStream in = new FileInputStream (Filename);
// 打 开 一 个 声 音 文 件 流 作 为 输 入
AudioStream as = new AudioStream (in);
// 用 输 入 流 创 建 一 个AudioStream 对 象
AudioPlayer.player.start (as);
//“player” 是AudioPlayer 中 一 静 态 成 员 用 于 控 制 播 放
AudioPlayer.player.stop (as);

"因 为AudioClip 对 象(object) 和getAudioClip() 方 法(method) 都 是 属 于java.applet 包 的-- 它 在Application 中 无 法 调 用。"
呵呵,有这种事啊....


My BlogClick Me
2007-02-08 23:13
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 

不知道,网上刚看的.....


我在说's blog   http://www..cn
2007-02-08 23:29
scoladi
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-2-3
得分:0 
谢谢这个已经搞懂了,能介绍一下jmf吗.对其的设置等.
我想播放mp3格式的.可以吗.

[此贴子已经被作者于2007-2-8 23:34:40编辑过]


Java与你共枕.
2007-02-08 23:32
scoladi
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-2-3
得分:0 
可以用clip=java.applet.Applet.newAudioClip(utl_);//*1.采用这种方式把音乐加载进来,因为其是静态类
newAudioClip();为静态方法.
楼下有理.

[此贴子已经被作者于2007-2-8 23:57:58编辑过]


Java与你共枕.
2007-02-08 23:33
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
得分:0 
静态方法....

何况在Application中用Applet是天正地义滴事。你就new Applet()也不犯法,呵呵。
至于“Application中不能用Applet”纯属无稽之谈。

My BlogClick Me
2007-02-08 23:55
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 

请用Applet写一段播放10K以下的wav格式的音乐,试听一下是什么效果


我在说's blog   http://www..cn
2007-02-08 23:58
scoladi
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-2-3
得分:0 
极差.

Java与你共枕.
2007-02-09 14:18
lindongxiao
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-1-28
得分:0 
import java.applet.*;
import java.awt.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
import java.util.*;
import javax.media.*;

public class JMFPlayer extends JPanel implements ControllerListener {

/** The player object */
Player thePlayer = null;

/** The parent Frame we are in. */
JFrame parentFrame = null;

/** Our contentpane */
Container cp;

/** The visual component (if any) */
Component visualComponent = null;

/** The default control component (if any) */
Component controlComponent = null;

/** The name of this instance's media file. */
String mediaName;

/** The URL representing this media file. */
URL theURL;

/** Construct the player object and the GUI. */
public JMFPlayer(JFrame pf, String media) {
parentFrame = pf;
mediaName = media;
// cp = getContentPane();
cp = this;
cp.setLayout(new BorderLayout());
try {
theURL = new URL(getClass().getResource("."), mediaName);
thePlayer = Manager.createPlayer(theURL);
thePlayer.addControllerListener(this);
} catch (MalformedURLException e) {
System.err.println("JMF URL creation error: " + e);
} catch (Exception e) {
System.err.println("JMF Player creation error: " + e);
return;
}
System.out.println("theURL = " + theURL);

// Start the player: this will notify our ControllerListener.
thePlayer.start(); // start playing
}

/** Called to stop the audio, as from a Stop button or menuitem */
public void stop() {
if (thePlayer == null)
return;
thePlayer.stop(); // stop playing!
thePlayer.deallocate(); // free system resources
}

/** Called when we are really finished (as from an Exit button). */
public void destroy() {
if (thePlayer == null)
return;
thePlayer.close();
}

/** Called by JMF when the Player has something to tell us about. */
public synchronized void controllerUpdate(ControllerEvent event) {
// System.out.println("controllerUpdate(" + event + ")");
if (event instanceof RealizeCompleteEvent) {
if ((visualComponent = thePlayer.getVisualComponent()) != null)
cp.add(BorderLayout.CENTER, visualComponent);
if ((controlComponent = thePlayer.getControlPanelComponent()) != null)
cp.add(BorderLayout.SOUTH, controlComponent);
// re-size the main window
if (parentFrame != null) {
parentFrame.pack();
parentFrame.setTitle(mediaName);
}
}
}

public static void main(String[] argv) {
JFrame f = new JFrame("JMF Player Demo");
Container frameCP = f.getContentPane();
JMFPlayer p = new JMFPlayer(f,
argv.length == 0 ? "file:///C:/music/midi/beet5th.mid"
: argv[0]);
frameCP.add(BorderLayout.CENTER, p);
f.setSize(200, 200);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
参考一下
2007-02-10 10:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-120195-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.075068 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved