首 页 | 新 闻 | Symbian | Android| Windows Mobile | J2ME | 下载中心 | 游戏策划招聘与求职 | 购书指南 | 视频教程
您现在的位置: 开发视界 >> Android >> Android 入门 >> 正文
Android学习笔记(12)-开始做一个数独游戏[补充]
作者:SHARE & …    文章来源:SHARE & TOP    更新时间:2008-4-19 15:28:28
再补充一点吧,如果需要给游戏加上背景音乐,其实也是非常容易的事情。因为Android提供了一个 MediaPlayer类可以方便的播放音乐文件。

android.media.MediaPlayer类没有构造函数,一般是用它的静态方法create生成实例,简单地告诉它音乐文件的资源ID即可(支持mp3/wav/midi等)。

首先,我们得建立一个Service,就叫MediaService吧,它的代码如下:
Android/UploadFiles_8448/200804/20080419152842539.gif" align=top>Android/UploadFiles_8448/200804/20080419152843671.gif" align=top>public class MediaService extends Service implements MediaPlayer.OnErrorListener,MediaPlayer.OnCompletionListener,MediaPlayer.OnPreparedListener {
      
      ... ...    

    
private MediaPlayer player;
    
    @Override
    
protected void onDestroy() {
        
// TODO Auto-generated method stub
        super.onDestroy();
        
if(player!=null){
            player.stop();
            player.release();
        }

    }


    @Override
    
protected void onStart(int startId, Bundle arguments) {
        
// TODO Auto-generated method stub
        Log.d("Media","onStart");
            
        player
=MediaPlayer.create(this.getApplication(),R.raw.tonhua);
        
if(player!=null){
            player.setAudioStreamType(AudioSystem.STREAM_MUSIC);
            
            player.setOnCompletionListener(
this);
            player.setOnPreparedListener(
this);
            player.setOnErrorListener(
this);
            
            player.prepareAsync();
        }

    }


    @Override
    
public void onCompletion(MediaPlayer arg0) {
        
// TODO Auto-generated method stub
        Log.d("Media","finished.");
    }


    @Override
    
public void onPrepared(MediaPlayer arg0) {
        
// TODO Auto-generated method stub
        Log.d("Media","prepared.");
        player.start();
    }

    
    @Override
    
public void onError(MediaPlayer arg0,int what, int extra) {
                
        Log.d(
"Media","onError");
        player.stop();
    }

}

这个服务主要就是用一个MediaPlayer去播放资源中的tonghua(一首MP3音乐)。次序一般是先create出这个实例,然后prepare一下(如果是文件直接prepare,如果是流则最好异步parepareAsync),接着就可以start了,同步可以直接start,异步则必须放到onPrepared中再start。

在MainActivity中启动这个服务即可。
mediaServiceIntent= new Intent();
mediaServiceIntent.setClass(
this, MediaService.class);
        
 
this.startService(mediaServiceIntent, new Bundle());

当前,在Activity停止时也别忘了将这个Service停掉,而在Service停止时关掉MediaPlayer。

在模拟器上试了,效果不是太好,声音有点断断续续,不知道是不是我的解码器的问题(Vista系统)。
相关文章:
Android学习笔记(11)-开始做一个数独游戏[下]
Android学习笔记(10)-开始做一个数独游戏[中]
Android学习笔记(9)-开始做一个数独游戏[上]
Android学习笔记(8) — GridView与ImageView
Android学习笔记(7)—关于Service和Notification的体验
Android学习笔记(6)—关于Dialog的简单体验
Android学习笔记(5)-关于ListActivity的简单体验
Android学习笔记(4)-学习Intent的使用
 

站点地图 | 加入收藏 | 联系站长 | 广告服务 |
QQ:280529124  Tel:0592-8271361 辽ICP备05021703号