第126页
.getBoolean("bgsound",true);
}
}
说明: PreferenceActivity类用于实现对程序设置参数的存储。在该Activity中,设置参数的存储是完全自动的,不需要手动保存,非常方便。
(9)在res目录下,创建一个xml目录,在该目录中添加一个名称为setting.xml的首选项资源文件,具体代码如下:
android:key="bgsound"
android:title="播放背景音乐"
android:summary="选中为播放背景音乐"
android:defaultValue="true"/>
(10)在MainActivity中,重写onPause()方法,在该方法中,调用Music类的stop()方法停止播放背景音乐,具体代码如下:
@Override
protected void onPause() {
Music.stop(this); //停止播放背景音乐
super.onPause();
}
(11)在MainActivity中,重写onResume()方法,在该方法中,调用Music类的play()方法开始播放背景音乐,具体代码如下:
@Override
protected void onResume() {
Music.play(this, R.raw.jasmine); //播放背景音乐
super.onResume();
}
运行本实例,将显示如图10.9所示的运行结果。
图10.9 为游戏界面添加背景音乐和按键音
10.3.2 制作开场动画
例10.9 在Eclipse中创建Android项目,名称为10.9,制作开场动画。(实例位置:光盘\TM\sl\ 10\10.9)
(1)修改新建项目的res\layout目录下的布局文件main.xml,将默认添加的布局代码删除,然后添加一个FrameLayout帧布局管理器,并在该布局管理器中添加一个ImageView控件,用于显示小兔子图像,另外,还需要为添加的帧布局管理器设置背景图片,具体代码请参见光盘。
(2)在res\layout目录下创建一个布局文件start.xml,在该文件中添加一居中显示的线性布局管理器,并在该布局管理器中添加一个VideoView组件,用于播放开场动画视频文件,关键代码如下:
android:id="@+id/video"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
(3)创建一个名称为StartActivity的Activity,并重写其onCreate()方法,在该方法中,首先获取VideoView组件,并获取要播放的文件对应的URI,然后为VideoView组件指定要播放的视频,并让其获得焦点,再调用start()方法开始播放视频,最后为VideoView添加完成事件监听器,在重写的onCompletion()方法中调用startMain()方法进入到游戏主界面,具体代码如下:
video = (VideoView) findViewById(R.id.video); //获取VideoView组件
Uri uri = Uri.parse("android.resource://com.mingrisoft/"+R.raw.mingrisoft); //获取要播放的文件对应的URI
video.setVideoURI(uri); //指定要播放的视频
video.requestFocus(); //让VideoView获得焦点
try {
video.start(); //开始播放视频
} catch (Exception e) {
e.printStackTrace(); //输出异常信息
}
//为VideoView添加完成事件监听器
video.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
startMain(); //进入游戏主界面
}
});
(4)编写进入游戏主界面的startMain()方法,在该方法中创建一个新的Intent,以启动游戏主界面的Activity,具体代码如下:
//进入游戏主界面
private void startMain(){
Intent intent = new Intent(StartActivity.this, MainActivity.class); //创建Intent
startActivity(intent); //启动新的Activity
StartActivity.this.finish(); //结束当前Activity
}
(5)打开AndroidManifest.xml文件,在该文件中配置项目中应用的Activity。这里首先将主Activity设置为StartActivity,然后再配置MainActivity,关键代码如下:
android:label="@string/app_name"
android:name=" .StartActivity " >
运行本实例,首先播放指定的视频,视频播放完毕后,将进入到如图10.10所示的游戏主界面。
图10.10 游戏主界面
10.4 小 结
本章主要介绍了在Android中,如何播放音频与视频,以及如何控制相机拍照等内容。需要重点说明的是两种播放音频方法的区别。本章共介绍了两种播放音频的方法,一种是使用MediaPlayer播放,另一种是使用SoundPool播放。这两种方法的区别是:使用MediaPlayer每次只能播放一个音频,适用于播放长音乐或是背景音乐;使用SoundPool可以同时播放多个短小的音频,适用于播放按键音或者消息提示音等,希望读者根据实际情况选择合适的方法。