当前位置:  技术问答>java相关

怎样处理波形文件?

    来源: 互联网  发布时间:2015-03-29

    本文导语:  我想寒假不回家,写一个英语学习的java应用程序,借以学习java;但对波形文件的裁剪,拼接等无从下手。希望各位朋友能帮忙。1,波形文件的格式;2,波形文件的处理方法。或者直接指教,或者教我如何获得这方...

我想寒假不回家,写一个英语学习的java应用程序,借以学习java;但对波形文件的裁剪,拼接等无从下手。希望各位朋友能帮忙。1,波形文件的格式;2,波形文件的处理方法。或者直接指教,或者教我如何获得这方面的知识。感激不尽。

|

希望对你又帮助

Java Tip 24: 如何在应用程序中播放声音文件
一个在 Java 应用程序中播放声音程序的 step-by-step 的向导 

Chong Ser Wah 
John D. Mitchell 
简介
现有的在 Java applet 中对声音播放的支持使得声音播放任务变得很简单,但是在应用程序中缺少这样的支持。此篇小技巧将告诉你如何在 Java 应用程序中播放声音文件。(650 字) 
在 Java 应用程序中播放声音文件在现有发行的 Java 版本中都没有正式的支持,但别担心,我们还是有办法的。此篇小技巧将告诉你怎么做--我们从 applet 中播放声音文件所需的基本步骤开始讲述,然后慢慢转到讲述 Java 应用程序中的支持。 
在 applet 中播放声音文件非常简单,一般需要以下步骤: 


创建一个 AudioClip 对象 
装入 .au 声音文件到 AudioClip 对象 
一次播放或者不停循环播放声音 
停止播放 
下面是相应的代码: 

import java.applet.*;

AudioClip ac = getAudioClip(getCodeBase(), soundFile);
ac.play(); //play once
ac.stop(); //stop playing
ac.loop(); //play continuously


看起来,在 Java 应用程序中用相同的代码来播放声音文件似乎也是可行的。但很不幸,如果你真这样做,编译器就会报错。为什么呢?因为 AudioClip 对象及其方法 getAudioClip() 属于java.applet 包 -- 而不属于应用程序包的。可喜的是我们还可以自己做些改变来实现声音播放功能。 

解决这个问题的窍门是利用由 Sun 及 其JDK 提供的某些 undocumented 的特征。先看看 Sun JDK 中的文件 classes.zip (使用任何解压工具即可),发现其中不仅包含标准的 Java 包如 java.applet 而且还存在包 sun.audio. (在 sun/audio 的目录下.) 

包 sun.audio 中包含了用于播放声音文件所需的所有东西!下面是示例代码: 

import sun.audio.*; //import the sun.audio package
import java.io.*;

//** add this into your application code as appropriate

// Open an input stream to the audio file.
InputStream in = new FileInputStream(Filename);

// Create an AudioStream object from the input stream.
AudioStream as = new AudioStream(in); 

// Use the static class member "player" from class AudioPlayer to play
// clip.
AudioPlayer.player.start(as); 

// Similarly, to stop the audio.
AudioPlayer.player.stop(as); 


如果要用一个 URL 做为声音流的源(source),则用下面的代码所示替换输入流来创建声音流: 

AudioStream as = new AudioStream (url.openStream());


如果需要持续播放声音文件,则要稍稍复杂一点: 

// Create audio stream as discussed previously.

// Create AudioData source.
AudioData data = as.getData();

// Create ContinuousAudioDataStream.
ContinuousAudioDataStream cas = new ContinuousAudioDataStream (data);

// Play audio.
AudioPlayer.player.play (cas);

// Similarly, to stop the audio.
AudioPlayer.player.stop (cas);



现在知道怎么做了吧?别忘了,此技巧用到了没有写入文档的特征,所以它不保证在任何情况下都凑效,但用当前 SUN 的 JDK 是没有问题的。 


    
 
 

您可能感兴趣的文章:

  • 如何让批处理文件执行完毕后窗口不关闭,批处理文件直接点击执行
  • 我准备做个批处理文件来删除某文件夹下后缀为Txt的文件,可系统一次执行不完,还要手动敲一个回车,怎么处理?
  • 我想编一个把javac和java连起来用的批处理文件,请批处理文件中的参数怎么表示?
  • makefile文件与批处理文件
  • iconv命令处理固定文件夹下的所有文件
  • 请教:shell遍历文件夹,处理其中的文件。
  • 怎样做一个批处理文件把一个.dat文件连续播放十遍?
  • 如何处理文件名内含有特殊字符的文件?
  • UNIX怎样处理ASCII文件与文本文件
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • 含有中文的文件处理(高手请进)
  • 怎么处理文件
  • 哪里有关于批处理文件的资料?急
  • 问一个关于文件处理的问题
  • bat 批处理获取文件路径
  • 批处理文件
  • 批处理文件中动态指令
  • 如何编写批处理文件
  • signal处理函数中的文件操作问题
  • linux批处理文件怎么写?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • c/c++预处理命令预#error介绍
  • 关于linux内核中信号处理的问题?(信号处理的时间)
  • c/c++预处理命令预#undef介绍
  • 视频处理问题,用批处理对视频进行打码
  • c/c++预处理命令预#pragma介绍
  • 请问如何在unix批处理中得到批处理参数!read吗?急在线等待!
  • c/c++预处理命令预#line介绍
  • 在linux上怎么编写一个模块来提供某个中断的中断处理程序呢?而且有哪些中断可以自己添加中断处理程序呢?
  • c/c++预处理命令预#include介绍
  • 信号处理函数里面用CRT函数可能导致"信号触发-处理"死循环吗?
  • Python 3 Tkinter教程之事件Event绑定处理代码实例
  • 为何信号处理没有及时被处理呢?
  • c/c++预处理命令预#,##使用介绍
  • 在编写驱动程序的时候,timer处理中,遇到了其他某timer处理例程以外的代码的执行。请指点,各位
  • c/c++预处理命令预#if, #ifdef, #ifndef, #else, #elif, #endif介绍
  • 批量处理JDBC语句提高处理速度
  • c/c++预处理命令预#define语法和例子
  • 有关在entity中处理oracel中的自动递增字段的处理,常用的做法是怎样的?
  • c/c++预处理命令之预定义变量
  • 0.11sys_call处理问题
  • Python异常处理基础知识
  • 复杂网络处理包 igraph


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3