AudioCLip主要的方法有:play()播放依次声音;loop()循环播放音乐;stop()停止播放。
做法一:
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()
可以通过Service来播放背景音乐,以下是实现代码:1.在AndroidManifest.xml文件中的<application>标签内加入下边语句
<service android:name=".MusicServer">
<intent-filter>
<action android:name="com.angel.Android.MUSIC"/>
<category android:name="android.intent.category.default" />
</intent-filter>
</service>
2.新建MusicServer.java类,内容为
import android.app.Service
import android.content.Intent
import android.media.MediaPlayer
import android.os.IBinder
public class MusicServer extends Service {
private MediaPlayer mediaPlayer
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null
}
@Override
public void onStart(Intent intent,int startId){
super.onStart(intent, startId)
if(mediaPlayer==null){
// R.raw.mmp是资源文件,MP3格式的
mediaPlayer = MediaPlayer.create(this, R.raw.abc)
mediaPlayer.setLooping(true)
mediaPlayer.start()
}
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy()
mediaPlayer.stop()
}
}
3.将歌曲放入raw文件夹下,名称为abc。
4.在Activity中加入代码
private Intent intent = new Intent("com.angel.Android.MUSIC")
onCreate方法中加入startService(intent)
就可以播放了。