Android 使用原始资源
原创
©著作权归作者所有:来自51CTO博客作者wx59bdec579ef96的原创作品,请联系作者获取转载授权,否则将追究法律责任
概念:Android 除了图片,XML资源外还有大量其他资源,比如声音资源。只要Android没有为其提供专门的支持就称为原始资源。
存放位置:/res/raw Android sdk会在R资源清单中生成索引项。
/assets 需要通过AssetsManager来管理。
程序示例:分别播放/res/raw和/assets下的声音文件sayloveyou.mp3。
public class MainActivity extends Activity {
MediaPlayer mediaPlayer1 = null;
MediaPlayer mediaPlayer2 = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button playRaw = (Button) findViewById(R.id.button1);
Button playAsset = (Button) findViewById(R.id.button2);
mediaPlayer1 = MediaPlayer.create(this, R.raw.sayloveyou);
// 获取该应用的AssetManager
AssetManager am = getAssets();
try {
// 获取指定文件的描述符
AssetFileDescriptor fd = am.openFd("sayloveyou");
mediaPlayer2 = new MediaPlayer();
// 用MediaPlayer加载指定的声音文件
mediaPlayer2.setDataSource(fd.getFileDescriptor());
mediaPlayer2.prepare();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
playRaw.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mediaPlayer1.start();
}
});
playAsset.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
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;
}
}