首页 理论教育 Android游戏开发:使用声音资源

Android游戏开发:使用声音资源

时间:2023-10-22 理论教育 版权反馈
【摘要】:类似于声音文件及其他各种类型的文件,Android并没有为之提供对应的支持,这种资源都被称为原始资源。在Android应用程序中,声音等原始资源被保存在“/res/raw”目录下,Android SDK会在R清单类中为这个目录下的资源生成一个索引项。AssetFileDescriptor代表了一项原始资源的描述,应用程序可通过AssetFileDescriptor来获取原始资源。例如在下面的演示实例中,讲解了使用声音资源的具体过程。

Android游戏开发:使用声音资源

除了在本章前面介绍的XML文件和图片文件之外,在Android应用程序中还可以使用声音资源。类似于声音文件及其他各种类型的文件,Android并没有为之提供对应的支持,这种资源都被称为原始资源。Android的原始资源可以放在如下两个地方。

在Android应用程序中,声音等原始资源被保存在“/res/raw”目录下,Android SDK会在R清单类中为这个目录下的资源生成一个索引项。

在Android应用程序中,位于“/assets/”目录中的资源是更为彻底的原始资源。Android应用程序需要通过AssetManager来管理该目录下的原始资源。Android SDK会为被保存在“/res/raw/”目录中的资源在R类中生成一个索引项,然后就可以在XML文件中通过如下语法格式进行访问。

978-7-111-54543-9-Part02-548.jpg

也可以在Java代码中通过如下语法格式进行访问

978-7-111-54543-9-Part02-549.jpg

通过上述所示的索引项,Android应用程序可以非常方便地访问“/res/raw”目录中的原始资源,接下来可以根据实际项目的需要来处理获取的资源。

在Android应用程序中,AssetManager是一个专门用于管理“/assets/”目录中原始资源的类,此类提供了如下的两个方法来访问Assets资源。

■ InputStream open(String fileName):根据文件名来获取原始资源对应的输入流。

■ AssetFileDescriptor openFd(Stirng fileName):根据文件名来获取原始资源对应的

AssetFileDescriptor。AssetFileDescriptor代表了一项原始资源的描述,应用程序可通过

AssetFileDescriptor来获取原始资源。

例如在下面的演示实例中,讲解了使用声音资源的具体过程。

978-7-111-54543-9-Part02-550.jpg(www.xing528.com)

本实例的具体实现流程如下。

(1)在应用程序的“/res/raw/”目录下放入一个音频文件:bomp.mp3文件。这样Android SDK会自动处理该目录下的资源,并在R清单类中为它生成一个索引项:R.raw.bomp。

(2)在“/assets/”目录中保存一个shot.mp3文件,这个需要通过AssetManager进行管理

(3)编写布局文件main.xml,功能是定义了两个按钮,一个按钮用于播放/res/raw/目录下的声音文件,另一个用于播放/assets/目录下的声音文件。文件main.xml的具体实现代码如下

978-7-111-54543-9-Part02-551.jpg

978-7-111-54543-9-Part02-552.jpg

(4)编写对应的Java程序文件RawResTest.java,功能是首先获取“/res/raw/”目录下的原始资源文件,然后通过AssetManager来获取“/assets/”目录下的原始资源文件。文件RawResTest.java的具体实现代码如下。

978-7-111-54543-9-Part02-553.jpg

978-7-111-54543-9-Part02-554.jpg

本实例执行后的效果如图9-6所示

978-7-111-54543-9-Part02-555.jpg

图9-6 执行效果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈