Android中原始资源的使用
来源:互联网 发布:惠普pavilion系列知乎 编辑:程序博客网 时间:2024/05/28 15:10
类似声音文件及其他各种类型的文件,只要Android没有为之提供专门的支持,这种资源都被称为原始资源。Android的原始资源可以放在如下两个地方:
1、位于/res/raw目录下,Android SDK会在R清单类中为该目录下的资源生成一个索引项,但不会被编译。
2、位于/assets目录下,该目录下的资源是更彻底的原始资源。不会生成索引,更不会被编译,Android应用需要通过AssetManager来管理该目录下的原始资源。AssetManager提供了如下两个常用方法来访问Assets资源:
①InputStream open(String fileName):根据文件名来获取原始资源对应的输入流。
②AssetFileDescriptor openFd(String fileName):根据文件名来获取原始资源对应的描述(AssetFileDescriptor),应用程序可以通过描述来获取原始资源。
本实例中,在raw和assets下各放了一个音频文件,然后在程序中读取出来进行播放控制,代码如下:
Activity:
package com.lovo.activity;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 MainActivity extends Activity {MediaPlayer mediaPlayer1 = null;MediaPlayer mediaPlayer2 = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 对于raw里的声音文件,直接根据ID来创建MediaPlayermediaPlayer1 = MediaPlayer.create(this, R.raw.raw);// 对于assets里的声音文件,先获取该应用的AssetManager对象AssetManager am = getAssets();try {// 获取指定文件对应的AssetFileDescriptor对象AssetFileDescriptor afd = am.openFd("asset.mp3");mediaPlayer2 = new MediaPlayer();// 使用MediaPlayer加载指定的声音文件mediaPlayer2.setDataSource(afd.getFileDescriptor());mediaPlayer2.prepare();} catch (IOException e) {e.printStackTrace();}Button playRaw = (Button) findViewById(R.id.main_btn1);Button playAsset = (Button) findViewById(R.id.main_btn2);Button stopRaw = (Button) findViewById(R.id.main_btn3);Button stopAsset = (Button) findViewById(R.id.main_btn4);playRaw.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 播放声音mediaPlayer1.start();}});playAsset.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 播放声音mediaPlayer2.start();}});stopRaw.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 停止播放mediaPlayer1.stop();}});stopAsset.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 停止播放mediaPlayer2.stop();}});}}
布局XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <Button android:id="@+id/main_btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="播放raw声音" /> <Button android:id="@+id/main_btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="播放asset声音" /> <Button android:id="@+id/main_btn3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="停止播放raw声音" /> <Button android:id="@+id/main_btn4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="停止播放asset声音" /></LinearLayout>
- Android中原始资源的使用
- Android原始资源的使用
- Android中原始资源文件使用详解
- Android中原始资源文件使用详解
- Android中原始资源文件使用详解
- Android 使用原始资源
- Android 原始资源文件的使用详解
- Android 使用原始XML资源
- android之使用原始资源
- android之使用原始资源
- Android 使用原始xml资源
- 使用原始的XML资源
- 使用原始的XML资源
- android中读取原始(Raw)资源
- android中读取原始(Raw)资源
- android中读取原始(Raw)资源
- Android实战技巧:使用原始资源文件
- 初学Android,使用原始资源(二十三)
- 在MFC中通过opencv显示摄像头视频或者文件视频
- 黑马程序员-------Java基础
- (读书笔记)蔡康永的说话之道
- 解决TcxTreeList使用的几个问题
- linux 技巧:使用 screen 管理你的远程会话
- Android中原始资源的使用
- python中的simplejson模块
- ZooKeeper 安装配置笔记
- PHP codeigniter 框架编程学习之【数据库编程】
- Debian为程序添加一个开始菜单,debian添加sublime开始菜单.
- 挨踢江湖之十一
- 客户端调用webservice方式一(soap请求)
- commons-beanutils包的使用
- linux的service与一般的程序的区别