初学Android,使用原始资源(二十三)
16lz
2021-01-25
原始资源就是Android没有为之提供专门支持的资源文件,可以放在如下两个位置
/res/raw Android SDK会在R清单类中为该目录下的资源生成一个索引项
/res/assets 需要通过AssetManager来管理该目录下的原始资源
下面写个Demo,往两个目录下各放一个mp3文件,一个叫one,一个叫two(都是黄小琥的音乐,可惜文件名不能是中文)
主界面main.xml代码如下
package WangLi.Resouce.RawResTest;import java.io.IOException;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.View;import android.view.View.OnClickListener;import android.widget.Button;public class RawResTest extends Activity { /** Called when the activity is first created. */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.two); //获取该应用的AssetManager AssetManager am = getAssets(); try { //获取指定文件对应的AssetFileDescriptor AssetFileDescriptor afd = am.openFd("one.mp3"); mediaPlayer2 = new MediaPlayer(); //使用MediaPlayer加载指定的声音文件 mediaPlayer2.setDataSource(afd.getFileDescriptor()); mediaPlayer2.prepare(); } catch(IOException e) { e.printStackTrace(); } //获取第一个按钮,并为它绑定事件监听器 Button playRaw = (Button)findViewById(R.id.button1); playRaw.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { //播放声音 mediaPlayer1.start(); } }); //获取第二个按钮,并为它绑定事件监听器 Button playAsset = (Button)findViewById(R.id.button2); playAsset.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { mediaPlayer2.start(); } }); }}
界面如下图,两个按钮,一个访问Asset下的文件,一个访问raw下的文件
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- 一款霸榜 GitHub 的开源 Linux 资源监视器!
- Android软件安全与逆向分析入门-壹-初识反编译
- 使用Intent实现Activity之间传值与跳转
- 传智播客—Android(三) 数据存储之二 SharedPreferences