本帖最后由 任亚俊 于 2013-12-18 22:39 编辑
asset目录存放Android的原始资源,原始资源就是类似声音及其他各种类型的文件,只要Android没有为止提供支持,这种资源就教做原始资源。assets目录下的资源可以通过AssetManager类来管理。
下面举个使用assets目录的例子。
程序功能:播放/raw和/assets目录下的声音文件。实现思路:先在应用的/res/raw/目录下放一个bomb.mp3文件,Android SDK会自动处理该目录下的资源,会在R清单类中为它生成一个索引项,R.raw.bomb,接下来我们再往、assets目录下放一个shot.mp3文件,需要通过AssetManager进行管理。
程序代码:
- public class RawResTest extends Activity
- {
- MediaPlayer mediaPlayer1 = null;
- MediaPlayer mediaPlayer2 = null;
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- // 直接根据声音文件的ID来创建MediaPlayer。
- mediaPlayer1 = MediaPlayer.create(this, R.raw.bomb);
- // 获取该应用的AssetManager
- AssetManager am = getAssets();
- try
- {
- // 获取指定文件对应的AssetFileDescriptor。
- AssetFileDescriptor afd = am.openFd("shot.mp3");
- mediaPlayer2 = new MediaPlayer();
- // 使用MediaPlayer加载指定的声音文件。
- mediaPlayer2.setDataSource(afd.getFileDescriptor());
- mediaPlayer2.prepare();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- // 获取第一个按钮,并为它绑定事件监听器
- Button playRaw = (Button) findViewById(R.id.playRaw);
- playRaw.setOnClickListener(new OnClickListener()
- {
- @Override
- public void onClick(View arg0)
- {
- // 播放声音
- mediaPlayer1.start();
- }
- });
- // 获取第二个按钮,并为它绑定事件监听器
- Button playAsset = (Button) findViewById(R.id.playAsset);
- playAsset.setOnClickListener(new OnClickListener()
- {
- @Override
- public void onClick(View arg0)
- {
- // 播放声音
- mediaPlayer2.start();
- }
- });
- }
- }
复制代码
|