设为首页 加入收藏

TOP

Android音频介绍(二)
2014-11-24 11:15:15 来源: 作者: 【 】 浏览:2
Tags:Android 音频 介绍
16000个的32位的数据用来表示音频振幅。采样率和位深度越高,数字化音频越精准。采样率和位深度也决定了音频文件的大小。Android在WAV文件内支持PCM音频数据。WAV是PC上的一个长期存在的标准音频格式。


通过Intent使用内建的音频播放器


正如使用摄像头,在一个应用程序里提供播放音频文件的能力,最容易的方法就是


使用内建的“音乐”程序的功能。这个程序有个用户熟悉的界面,能播放所有Android支持的格式,并且能通过一个intent,被触发去播放一个指定的文件。普通的android.content.Intent.ACTION_VIEWintent,其数据设置为一个音频文件的Uri,并指定其MIME类型,这样Android会自动选择一个合适的应用程序来播放。这个程序应该是内建的音乐播放程序,但用户可能被提供其他的选项,如果他/她安装了其他的音频播放软件。


1.Intent intent=newIntent(android.content.Intent.ACTION_VIEW);


2.intent.setDataAndType(audioFileUri,"audio/mp3");


3.startActivity(intent);


注解:MIME全称是MultipurposeInternet Mail Extension(s多用途互联网邮件扩展)。它起初专门用来帮助电子邮件客户端发送和接收附件。但它的使用范围从电子邮件极大地扩展到其他的通讯协议,包括HTTP,标准万维网服务。Android使用MIME类型来解析intent,并且用它来决定应该选择哪个应用程序来处理intent.


每个文件类型都有特定的(有时候不止一个)MIME类型。MIME类型通过至少由2部分组成,由斜杠分开的字符来指定。第一部分是更通用的类型,比如“audio”.第二部分是更具体的类型,比如"mpeg".一个通用的类型"audio"和一个更具体的类型"mpeg"将产生一个“audio/mpeg"MIME类型字符,这个MIME类型通常用于MP3文件。



Android音频实例分析


这里有个通过一个intent触发内建的音频播放程序的完整例子。


1.packagecom.apress.proandroidmedia.ch5.intentaudioplayer;


2.import java.io.File;


3.import android.app.Activity;


4.import android.content.Intent;


5.import android.net.Uri;


6.import android.os.Bundle;


7.import android.os.Environment;


8.import android.view.View;


9.importandroid.view.View.OnClickListener;


10.import android.widget.Button;


我们的activity在触发音频播放之前会一直监听一个Botton是否被按下。


1.public class AudioPlayer extendsActivity implements OnClickListener{


2.Button playButton;


3.@Override


4.public void onCreate(BundlesavedInstanceState){


5.super.onCreate(savedInstanceState);


6.setContentView(R.layout.main);


我们将content view设置为我们的XML后,我们能得到一个Button的引用,并将我们的activity(this)设为OnClickListener.


1.playButton=(Button)this.findViewById(R.id.Button01);


2.playButton.setOnClickListener(this);


3.}


当我们的Button被点击,OnClick方法会被调用。在这个方法里,我们用一个普通的android.content.Intent.ACTION_VIEW来构建intent,然后创建一个文件对象,这个对象是SD卡上已经存在的音频文件的索引。这种情况下,这个音频文件被手动放置到SD卡的“Music"目录下,这个目录通常放置和音乐相关的音频文件。


1.public void onClick(View v){


2.Intent intent=newIntent(android.content.Intent.ACTION_VIEW);


3.Filesdcard=Environment.getExternalStorageDirectory();


4.File audioFile=newFile(sdcard.getPath()+"/Music/goodmorningandroid.mp3");


接下来,我们设置intent的数据为来源于音频文件的Uri并将其类型设置为MIME类型,audio/mp3.最后传递我们的intent给startActivity来触发内建的音乐播放程序。


1.intent.setDataAndType(Uri.fromFile(audioFile),"audio/mp3");


2.startActivity(intent);


3.}


下面是一个简单的XML布局文件,其中Button的文本为"Play Audio",前面所述的


activity会用到这个Button.


1.< xmlversion="1.0"encoding="utf-8" >


2.

3.android:orientation="vertical"


4.android:layout_width="fill_parent"


5.android:layout_height="fill_parent"


6.>


7.


9.




Android支持的视频格式


先简要说明下Android支持的视频格式,如下:




由于硬件的不同,不同的手机支持的编解码方式有些不一样,在T-Mobile G1实际设备中增加了对WMA,WMV,H.264 AVC格式解码的支持。Android支持的音/视频编码方式仅包括:AMR-NB,H.263,输出的视频格式也只*.3gp或者*.mp4,这点在以后的开发中需要注意。对Android的编解码有了一些了解后,我们再去研究下如何在Android上来播放/录制视频,打开Android SDK中关于媒体方面的说明,摘要其主要部分如下:




首先注意的就是:MediaPlayer,MediaRecoder,主要是用来播放视频与录制视频的类。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android垃圾回收实质内容解析 下一篇Android音频视频开发

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·【C语言】动态内存管 (2025-12-27 06:23:20)
·C语言中的内存管理 - (2025-12-27 06:23:16)
·C语言指南:C语言内 (2025-12-27 06:23:14)
·Redis on AWS:Elast (2025-12-27 04:19:30)
·在 Spring Boot 项目 (2025-12-27 04:19:27)