随笔分类 -  Android多媒体开发高级教程

8.2.1 捕获声音以进行分析
摘要:正如之前所描述的那样,声音是经过某种物质的震动,这这些振动可以被麦克风所捕获。麦克风将通过空气传播的振动转换成一个变化的电流。当计算机使用麦克风来捕获声音时,该声音将会被数字化。具体而言,特定大小(样本大小)的振幅样本会被每秒钟采集多次(采样率)。这个数据称为PCM(脉冲编码调制)流,其形成数字音频... 阅读全文

posted @ 2014-09-02 16:47 宁静致远,一览众山小 阅读(277) 评论(0) 推荐(0)

8.2 音频分析
摘要:既然已经探讨了使用AudioTrack的高级方式,那么现在就看看如何通过AudioRecord对象对音频进行其他的处理。 阅读全文

posted @ 2014-09-02 16:34 宁静致远,一览众山小 阅读(199) 评论(0) 推荐(0)

8.1.2 生成样本
摘要:通过使用一点算术,就能够利用算法来创建这些样本,例如可以重新生成经典的正弦波,以下示例产生了一个440Hz的正弦波。 1 package com.nthm.androidtestActivity; 2 3 import com.nthm.androidtest.R; 4 import androi... 阅读全文

posted @ 2014-09-02 16:17 宁静致远,一览众山小 阅读(326) 评论(0) 推荐(0)

8.1.1 播放合成声音
摘要:下面的一个简单的示例,展示了如何构造一个AudioTrack类,并传入数据进行播放。关于用于构造AudioTrack对象的参数的完整讨论,请参阅7.5节。此示例使用一个内部类AudioSynthesisTask,其扩展了AsyncTask。AsyncTask定义一个称为doInBackground的... 阅读全文

posted @ 2014-09-02 14:29 宁静致远,一览众山小 阅读(333) 评论(0) 推荐(0)

8.1 数字音频合成
摘要:数字音频合成(Digital Audio Synthesis)是一个非常广泛的主题,涉及大量的理论、数学、工程及其背后的历史。但是,大部分的主题超出了这本书的覆盖范围。我们要做的是查看一些基本的示例,以介绍如何利用Android上几个内置的类从头开始创建音频。可能你已经知道,声音是由重复的气压(或其... 阅读全文

posted @ 2014-09-02 10:36 宁静致远,一览众山小 阅读(413) 评论(0) 推荐(0)

第8章 音频合成与分析
摘要:在第7章结束时,我们查看了使用AudioRecord和AudioTrack类捕获和播放原始PCM音频的方法。本章将继续使用这些类对录制的音频进行算法合成和分析。 阅读全文

posted @ 2014-09-02 09:16 宁静致远,一览众山小 阅读(235) 评论(0) 推荐(0)

7.7 本章小结
摘要:本章介绍了在Android上录制音频的3种不同的方法,每种方法都有各自的优缺点。使用内置的录音机非常适合录制无需过多处理的音频,其中很少有或者没有编程控制的需要。使用MediaRecorder能够获得更大的灵活性,允许控制录音媒体的时间长度以及其他要素,但是将界面留给我们来实现。本章最后探讨了采用A... 阅读全文

posted @ 2014-09-02 08:57 宁静致远,一览众山小 阅读(128) 评论(0) 推荐(0)

7.6 捕获和播放原始音频的示例
摘要:下面是一个完整的示例,其中使用AudioRecord录制音频,并使用AudioTrack播放音频。通过使用AsyncTask,每个操作都在他们各自的线程中工作,所以他们并不会导致在主线程中运行的应用程序变得无响应。 1 package com.nthm.androidtestActivity; 2 ... 阅读全文

posted @ 2014-09-02 08:51 宁静致远,一览众山小 阅读(299) 评论(0) 推荐(0)

7.5 使用AudioTrack播放原始音频
摘要:AudioTrack是Android中的一个类,它允许播放原始音频样本。利用该类能够播放使用AudioRecord捕获的音频,而他们并不能使用mediaPlayer对象来播放。为了构造一个AudioTrack对象,需要传入一系列的配置变量来描述待播放的音频。第一个参数是流类型。可能的值定义为Aud... 阅读全文

posted @ 2014-09-01 16:02 宁静致远,一览众山小 阅读(4916) 评论(0) 推荐(0)

7.4 使用AudioRecord录制原始音频
摘要:除了通过意图启动录音机和使用MediaRecorder之外,Android还提供了第三种方法来捕获音频;使用称为AudioRecord的类。AudioRecord是3种方法中最灵活的方法(因为它允许访问原始音频流),但是它拥有最少的内置功能,如不会自动压缩音频。使用AudioRecord的基础知识非... 阅读全文

posted @ 2014-09-01 15:50 宁静致远,一览众山小 阅读(1317) 评论(0) 推荐(0)

7.3 将音频插入MediaStore
摘要:可以将录制的音频放入MediaStore内容提供器,从而可将其用于其他应用程序。这非常类似于之前将图像添加到MediaStore的过程。不过在当前情况下,将在创建之后添加他们。我们将创建一个ContentValues对象来保存数据,同时将他们插入到MediaStore。ContentValues对象... 阅读全文

posted @ 2014-09-01 10:22 宁静致远,一览众山小 阅读(1094) 评论(0) 推荐(0)

7.2.7 其他的MediaRecorder方法
摘要:MediaRecorder有各种可用于音频捕获的其他方法。getMaxAmplitude:允许请求由MediaPlayer录制的音频的最大振幅。每次调用此方法时都会重置该值,因此每次调用都将返回自从上一次调用以来的最大振幅。可通过定期调用该方法实现音量表。setMaxDuration:允许以毫秒为... 阅读全文

posted @ 2014-09-01 09:59 宁静致远,一览众山小 阅读(560) 评论(0) 推荐(0)

7.2.6 MediaRecorder示例
摘要:下面是使用MediaRecorder类的定制音频捕获和播放示例的完整代码。 1 package com.nthm.androidtestActivity; 2 3 import java.io.File; 4 import java.io.IOException; 5 import com.nth... 阅读全文

posted @ 2014-08-30 11:37 宁静致远,一览众山小 阅读(305) 评论(0) 推荐(0)

7.2.5 MediaRecorder状态机
摘要:类似于MediaPlayer,MediaRecorder可作为一个状态机进行操作。可参考Android API参考手册(http://developer.android.com/reference/android/media/MediaRecorder.html)中MediaRecorder页的状态... 阅读全文

posted @ 2014-08-30 10:31 宁静致远,一览众山小 阅读(248) 评论(0) 推荐(0)

7.2.4 MediaRecorder输出和录制
摘要:最后,需要以想要录制到其中的文件位置调用setOutputFile。以下代码片段使用File.createTempFile,在应用程序(其需要在SD卡上存储文件)的首选位置上创建了一个文件。1 File file=new File(PATH);2 file.mkdir... 阅读全文

posted @ 2014-08-30 10:28 宁静致远,一览众山小 阅读(396) 评论(0) 推荐(0)

7.2.3 MediaRecorder音频编码器
摘要:在设置输出格式之后,可以调用setAudioEncoder方法来设置应该使用的编解码器。可能的值指定为MediaRecorder.AudioEncoder类中的常量;除了DEFAULT之外,只存在一个其他的值:MediaRecorder.AudioEncoder.AMR_NB,这是自适应多速率窄带编... 阅读全文

posted @ 2014-08-30 10:11 宁静致远,一览众山小 阅读(311) 评论(0) 推荐(0)

7.2.2 MediaRecorder输出格式
摘要:根据顺序,下一个调用的方法是setOutputFormat。这个方法采用在MediaRecorder.OutputFormat内部类中指定的常量值作为参数。 MediaRecorder.OutputFormat.MPEG_4:这个常量指定输出的文件将是一个MPEG_4文件。它可能同时包含音频和视频轨... 阅读全文

posted @ 2014-08-30 10:05 宁静致远,一览众山小 阅读(2261) 评论(0) 推荐(0)

7.2.1 MediaRecorder 音频源
摘要:在实例化MediaPlayer之后,应该调用的第一个方法是setAudioSource。setAudioSource采用一个在AudioSource内部类中定义的常量作为参数。我们通常希望使用的常量是MediaRecorder.AudioSource.MIC,但是需要注意的是,MediaRecord... 阅读全文

posted @ 2014-08-30 09:58 宁静致远,一览众山小 阅读(498) 评论(0) 推荐(0)

7.2 定制音频捕获
摘要:当然,通过意图触发录音机不是捕获音频的唯一方法。在Android SDK中还包含了一个MediaPlayer类,可以用它来建立自己的音频录制功能,从而能够提供更多的灵活性,如控制录音音频的时间长度等。 MediaPlayer类可用于音频和视频的捕获。在构造一个MediaPlayer对象之后,为了捕获... 阅读全文

posted @ 2014-08-30 09:42 宁静致远,一览众山小 阅读(291) 评论(0) 推荐(0)

7.1 通过意图捕获音频
摘要:在一个应用程序中,实现音频录制功能的最简单的方式是通过一个意图利用已有的、提供录制功能的应用程序。针对音频,Android附带一个能够以这种方式触发的录音机应用程序。在MediaStore.Audio.Media类中存在的常量RECORD_SOUND_ACTION可用来实现创建该意图的动作。以下是触... 阅读全文

posted @ 2014-08-29 16:27 宁静致远,一览众山小 阅读(298) 评论(0) 推荐(0)

导航