关闭

android之使用原始资源

标签: android原始资源AssetFileDescriptorAssetMananger
4115人阅读 评论(0) 收藏 举报
分类:

android中没有提供专门支持的文件 叫原始资源文件。android原始资源一般放在/res/raw目录和/assets/目录下;在assets目录下的文件通过AssetMananger来管理,它提供了几个常用的方法来访问Assets资源

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

AssetFileDescriptor   openFd(String fileName):根据文件名来获取原始资源对应的AssetFileDescriptor  资源描述,应用程序可以通过它来获取原始资源

package com.android.xiong.rawrestest;

import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	private Button bt1, bt2;
	MediaPlayer mediaPlayer1 = null;
	MediaPlayer mediaPlayer2 = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		bt1 = (Button) findViewById(R.id.bt1);
		bt2 = (Button) findViewById(R.id.bt2);
		// 直接根据声音文件的ID来创建MediaPlayer
		mediaPlayer1 = MediaPlayer.create(this, R.raw.bomb);
		// 获取该应用的AssetManager
		AssetManager am = this.getAssets();
		try {
			// 获取指定文件对应的AssetFileDescriptor
			AssetFileDescriptor afd = am.openFd("shot.mp3");
			mediaPlayer2 = new MediaPlayer();
			// 使用MediaPlayer加载指定的声音文件
			mediaPlayer2.setDataSource(afd.getFileDescriptor());
			mediaPlayer2.prepare();
		} catch (Exception e) {
			e.printStackTrace();
		}
		bt1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// 播放声音
				mediaPlayer1.start();
			}
		});
		bt2.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// 播放声音
				mediaPlayer2.start();
				

			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
    <Button 
        android:id="@+id/bt1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="播放1"/>
    <Button 
        android:id="@+id/bt2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/bt1"
        android:text="播放2"/>


</RelativeLayout>


0
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1148634次
    • 积分:8761
    • 等级:
    • 排名:第2297名
    • 原创:115篇
    • 转载:72篇
    • 译文:0篇
    • 评论:270条
    博客专栏
    联系方式
    最新评论