安卓开发中eclipse中怎么加音乐

安卓开发中eclipse中怎么加音乐,第1张

用eclipse在安卓开发中增加音乐的方法:

如果是插入背景音乐 最好使用mediaplayer类 使用方法如下

首先把音乐文件(.wma .mp3 .ogg)放入/res/raw 文件夹下 如果没有就新建一个 然后按这段代码 *** 作

//声明一个音乐播放

private MediaPlayer mediaPlayer

//实例化mediaPlayer

mediaPlayer = new MediaPlayer()

//设置循环播放

mediaPlayer.setLooping(true)

//设置音乐路径,播放器初始化

try

{

// 创建MediaPlayer对象,将raw文件夹下的fighter.mp3

mediaplayer = MediaPlayer.create(this, R.raw.fighter)

mediaPlayer.prepare()

}

catch (IllegalArgumentException e)

{

// TODO Auto-generated catch block

e.printStackTrace()

}

catch (IllegalStateException e)

{

// TODO Auto-generated catch block

e.printStackTrace()

}

catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace()

}

mediaPlayer.start()

//暂停,用start()可恢复播放

mediaPlayer.pause()

//停止播放,清除播放器,需重新设置音乐路径

if (mediaPlayer != null)

{

mediaPlayer.stop()

mediaPlayer.release()

}

注意一下 这里的mediaplayer不能支持多音频同时播放 如果是要播放游戏音效等即时性强但小的音频建议使用soundpool。

import java.io.*

import javax.sound.sampled.*

public class Test {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//修改你的音乐文件路径就OK了

AePlayWave apw=new AePlayWave("./111.wav")

apw.start()

}

}

//在程序中实例化这个类,启动线程,实例化的时候参照Test修改路径就OK

//播放声音的类

class AePlayWave extends Thread {

private String filename

public AePlayWave(String wavfile) {

filename = wavfile

}

public void run() {

File soundFile = new File(filename)

AudioInputStream audioInputStream = null

try {

audioInputStream = AudioSystem.getAudioInputStream(soundFile)

} catch (Exception e1) {

e1.printStackTrace()

return

}

AudioFormat format = audioInputStream.getFormat()

SourceDataLine auline = null

DataLine.Info info = new DataLine.Info(SourceDataLine.class, format)

try {

auline = (SourceDataLine) AudioSystem.getLine(info)

auline.open(format)

} catch (Exception e) {

e.printStackTrace()

return

}

auline.start()

int nBytesRead = 0

byte[] abData = new byte[512]

try {

while (nBytesRead != -1) {

nBytesRead = audioInputStream.read(abData, 0, abData.length)

if (nBytesRead >= 0)

auline.write(abData, 0, nBytesRead)

}

} catch (IOException e) {

e.printStackTrace()

return

} finally {

auline.drain()

auline.close()

}

}

}

有不明白的地方再hi我

做法一:

InputStream is =null

AudioStream as = null

is = getClass().getResourceAsStream("a.wav")

try {

as = new AudioStream(is)

} catch (IOException e) {}

AudioPlayer.player.start(as)

此方法将音乐文件放入流中在播放,仅限于Java Application,容易报错,空指针异常,或者是流异常,不推荐。

做法二:

String music = "a.wav"

AudioClip clip = Applet.newAudioClip(getClass().getResource(music))

次方法在Applet中运行没有问题,但是Application中getclass()会返回空指针,导致失败。

推荐做法:

private URL url

private AudioClip ac

File f1 = new File("C:/3.wav")

try {

url= f1.toURL()

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

ac= Applet.newAudioClip(cb1)

ac.play()


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11635907.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存