- 浏览: 576900 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (338)
- 已过时文章(留念用) (39)
- Android学习笔记 (30)
- Android开发指引自译 (100)
- Android NDK文档自译 (23)
- Android设计指引自译 (2)
- xp(ペケピー)&linux(理奈、铃)酱~ (4)
- ui酱&歌词自译~ (9)
- lua酱~ (9)
- 自我反省 (1)
- 羽game计划 (1)
- XSL酱 (2)
- java酱 (3)
- 设计的领悟 (58)
- 涂鸦作品(pixiv) (1)
- ruby酱 (2)
- Objective-C编程语言自译 (2)
- Android开发月报 (6)
- objc酱 (2)
- photoshop (3)
- js酱 (6)
- cpp酱 (8)
- antlr酱 (7)
- Lua 5.1参考手册自译 (11)
- 收藏品 (3)
- 待宵草计划 (4)
- 体验版截图 (1)
最新评论
-
naruto60:
太给力了!!!!我这网打不开Intel官网,多亏楼主贴了连接, ...
使用HAXM加速的Android x86模拟器(和一些问题) -
yangyile2011:
谢谢博主,翻译得很好哦
【翻译】(4)片段 -
ggwang:
牙痛的彼岸:痹!
牙痛的彼岸 -
ggwang:
总结得很简练清晰啊,学习了!
ANTLR学习笔记一:概念理解 -
leisurelife1990:
mk sdd
用git下载Android自带app的源代码
【翻译】(86)音频捕捉
see
http://developer.android.com/guide/topics/media/audio-capture.html
原文见
http://developer.android.com/guide/topics/media/audio-capture.html
-------------------------------
Audio Capture
音频捕捉
-------------------------------
In this document
本文目录
* Performing Audio Capture 执行音频捕捉
* Code Example 代码示例
Key classes
关键类
MediaRecorder
See also
另见
Android Supported Media Formats Android支持的媒体格式
Data Storage 数据存储
MediaPlayer
-------------------------------
The Android multimedia framework includes support for capturing and encoding a variety of common audio formats, so that you can easily integrate audio into your applications. You can record audio using the MediaRecorder APIs if supported by the device hardware.
Android多媒体框架包含对捕捉和编码各种通用音频格式的支持,使你可以轻易地集成音频进你的应用程序中。你可以使用MediaRecorder的API记录音频,如果它被设备硬件支持。
This document shows you how to write an application that captures audio from a device microphone, save the audio and play it back.
本文向你展示如何编写一个应用程序,它从一个设备麦克风中捕捉音频,保存音频,以及回放它。
-------------------------------
Note: The Android Emulator does not have the ability to capture audio, but actual devices are likely to provide these capabilities.
注意:Android模拟器没有能力捕捉音频,但实际设备多半提供这些功能。
-------------------------------
-------------------------------
Performing Audio Capture
执行音频捕捉
Audio capture from the device is a bit more complicated than audio and video playback, but still fairly simple:
设备的音频捕捉比音频和视频回放稍微复杂些,但仍然非常简单:
1. Create a new instance of android.media.MediaRecorder.
1. 创建一个android.media.MediaRecorder的新实例。
2. Set the audio source using MediaRecorder.setAudioSource(). You will probably want to use MediaRecorder.AudioSource.MIC.
2. 使用MediaRecorder.setAudioSource()设置音频源。你将很可能希望使用MediaRecorder.AudioSource.MIC。
3. Set output file format using MediaRecorder.setOutputFormat().
3. 使用MediaRecorder.setOutputFormat()设置输出文件格式。
4. Set output file name using MediaRecorder.setOutputFile().
4. 使用MediaRecorder.setOutputFile()设置输出文件名。
5. Set the audio encoder using MediaRecorder.setAudioEncoder().
5. 使用MediaRecorder.setAudioEncoder()设置音频编码器。
6. Call MediaRecorder.prepare() on the MediaRecorder instance.
6. 在MediaRecorder实例上调用MediaRecorder.prepare()。
7. To start audio capture, call MediaRecorder.start().
7. 为了开始音频捕捉,请调用MediaRecorder.start()。
8. To stop audio capture, call MediaRecorder.stop().
8. 为了停止音频捕捉,请调用MediaRecorder.stop()。
9. When you are done with the MediaRecorder instance, call MediaRecorder.release() on it. Calling MediaRecorder.release() is always recommended to free the resource immediately.
9. 当你使用完MediaRecorder实例时,请对它调用MediaRecorder.release()。调用MediaRecorder.release()总是建议的,以立即释放资源。
Example: Record audio and play the recorded audio
示例:记录音频和播放被记录的音频
The example class below illustrates how to set up, start and stop audio capture, and to play the recorded audio file.
下面的示例类描述如何配置、启动和停止音频捕捉,以及如何播放被记录的音频文件。
-------------------------------
/*
* The application needs to have the permission to write to external storage
* if the output file is written to the external storage, and also the
* permission to record audio. These permissions must be set in the
* application's AndroidManifest.xml file, with something like:
*
* 该应用程序需要拥有权限来写入外部存储如果输出文件被写入到外部存储,
* 还需要记录音频的权限。这些权限必须被设置在应用程序的AndroidManifest.xml
* 文件中,就像这样:
*
* <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
* <uses-permission android:name="android.permission.RECORD_AUDIO" />
*
*/
package com.android.audiorecordtest;
import android.app.Activity;
import android.widget.LinearLayout;
import android.os.Bundle;
import android.os.Environment;
import android.view.ViewGroup;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;
import android.content.Context;
import android.util.Log;
import android.media.MediaRecorder;
import android.media.MediaPlayer;
import java.io.IOException;
public class AudioRecordTest extends Activity
{
private static final String LOG_TAG = "AudioRecordTest";
private static String mFileName = null;
private RecordButton mRecordButton = null;
private MediaRecorder mRecorder = null;
private PlayButton mPlayButton = null;
private MediaPlayer mPlayer = null;
private void onRecord(boolean start) {
if (start) {
startRecording();
} else {
stopRecording();
}
}
private void onPlay(boolean start) {
if (start) {
startPlaying();
} else {
stopPlaying();
}
}
private void startPlaying() {
mPlayer = new MediaPlayer();
try {
mPlayer.setDataSource(mFileName);
mPlayer.prepare();
mPlayer.start();
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
}
}
private void stopPlaying() {
mPlayer.release();
mPlayer = null;
}
private void startRecording() {
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
mRecorder.prepare();
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
}
mRecorder.start();
}
private void stopRecording() {
mRecorder.stop();
mRecorder.release();
mRecorder = null;
}
class RecordButton extends Button {
boolean mStartRecording = true;
OnClickListener clicker = new OnClickListener() {
public void onClick(View v) {
onRecord(mStartRecording);
if (mStartRecording) {
setText("Stop recording");
} else {
setText("Start recording");
}
mStartRecording = !mStartRecording;
}
};
public RecordButton(Context ctx) {
super(ctx);
setText("Start recording");
setOnClickListener(clicker);
}
}
class PlayButton extends Button {
boolean mStartPlaying = true;
OnClickListener clicker = new OnClickListener() {
public void onClick(View v) {
onPlay(mStartPlaying);
if (mStartPlaying) {
setText("Stop playing");
} else {
setText("Start playing");
}
mStartPlaying = !mStartPlaying;
}
};
public PlayButton(Context ctx) {
super(ctx);
setText("Start playing");
setOnClickListener(clicker);
}
}
public AudioRecordTest() {
mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
mFileName += "/audiorecordtest.3gp";
}
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
LinearLayout ll = new LinearLayout(this);
mRecordButton = new RecordButton(this);
ll.addView(mRecordButton,
new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
0));
mPlayButton = new PlayButton(this);
ll.addView(mPlayButton,
new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
0));
setContentView(ll);
}
@Override
public void onPause() {
super.onPause();
if (mRecorder != null) {
mRecorder.release();
mRecorder = null;
}
if (mPlayer != null) {
mPlayer.release();
mPlayer = null;
}
}
}
-------------------------------
Except as noted, this content is licensed under Apache 2.0. For details and restrictions, see the Content License.
除特别说明外,本文在Apache 2.0下许可。细节和限制请参考内容许可证。
Android 4.0 r1 - 16 Apr 2012 17:06
-------------------------------
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
此页部分内容,是基于Android开源项目所创建和共享的工作,并且根据知识共享2.5署名许可证描述的条款来使用的修改版。
(本人翻译质量欠佳,请以官方最新内容为准,或者参考其它翻译版本:
* ソフトウェア技術ドキュメントを勝手に翻訳
http://www.techdoctranslator.com/android
* Ley's Blog
http://leybreeze.com/blog/
* 农民伯伯
http://www.cnblogs.com/over140/
* Android中文翻译组
http://androidbox.sinaapp.com/
)
发表评论
-
【翻译】(9-补丁2)电话簿提供者
2012-07-18 12:54 2390【翻译】(9-补丁2)电话簿提供者 see h ... -
【翻译】(8-补丁1)Android接口定义语言(AIDL)
2012-07-02 05:55 2916【翻译】(8-补丁1)Andro ... -
【翻译】(0)应用组件
2012-06-30 23:50 820【翻译】(0)应用组件 see http:// ... -
【翻译】(88)传感器
2012-05-21 21:25 1071【翻译】(88)传感器 ... -
【翻译】(87)复制与粘贴
2012-05-20 14:48 1917【翻译】(87)复制与粘贴 see http: ... -
【翻译】(85)照相机
2012-05-13 15:09 3783【翻译】(85)照相机 see http:// ... -
【翻译】(84)JetPlayer
2012-04-21 16:24 974【翻译】(84)JetPlayer see h ... -
【翻译】(83)媒体回放
2012-04-21 16:00 1852【翻译】(83)媒体回放 see http:/ ... -
【翻译】(82)多媒体与照相机
2012-04-18 23:05 947【翻译】(82)多媒体与照相机 see htt ... -
【翻译】(23-补丁3)构建无障碍服务
2012-04-18 21:57 1620【翻译】(23-补丁3)构 ... -
【翻译】(23-补丁2)使应用程序无障碍
2012-04-16 13:08 2088【翻译】(23-补丁2)使应用程序无障碍 see ... -
【翻译】(23-补丁1)无障碍
2012-04-11 22:38 906【翻译】(23-补丁1)无 ... -
【翻译】(81)Renderscript之运行时API参考手册
2012-04-11 22:13 1408【翻译】(81)Renderscript之运行时API参 ... -
【翻译】(80)Renderscript之计算
2012-04-09 14:09 1437【翻译】(80)Renderscript之计算 ... -
【翻译】(79)Renderscript之图形
2012-04-08 13:59 2859【翻译】(79)Renderscript之图形 ... -
【翻译】(78)Renderscript
2012-04-04 15:35 1430【翻译】(78)Renderscript see ... -
【翻译】(77)可绘画对象动画
2012-03-18 10:52 704【翻译】(77)可绘画对象动画 see htt ... -
【翻译】(76)视图动画
2012-03-18 10:04 797【翻译】(76)视图动画 see http:/ ... -
【翻译】(75)属性动画
2012-03-17 18:24 2502【翻译】(75)属性动画 see http:/ ... -
【翻译】(74)动画
2012-03-10 14:22 1016【翻译】(74)动画 ...
相关推荐
- **应用场景**: 影视作品翻译后的配音制作。 #### ADV (Advance) - **定义**: 在音频播放器中指前进或快进功能。 - **应用场景**: 用户可以快速跳过不感兴趣的片段。 #### ADV (Adversum) - **定义**: 抗对或对抗...
- **CaptureAudioOptions**:用于配置音频捕捉选项。 - **CaptureImageOptions**:用于配置图片捕捉选项。 - **CaptureVideoOptions**:用于配置视频捕捉选项。 - **CaptureCB**:成功捕捉媒体文件后的回调函数类型...
注意训练在有限时间内捕捉关键信息的能力,尤其是对于语境的理解和词汇的反应速度。 3. **写作**: 写作部分要求考生根据所给题目或情景写出一篇400词左右的文章。分析真题的写作部分,可以了解当年的出题倾向,如...
本资料包主要聚焦于一种特殊的智能笔——构造为用于免提音频记录的智能笔,它结合了传统的书写功能与先进的音频捕捉技术,为用户提供了全新的记录体验。 免提音频记录功能是这款智能笔的核心亮点。在传统的会议、...
1. 音频采集:高质量的麦克风设备用于捕捉发言人的语音,确保声音清晰无失真。同时,降噪技术的应用可以消除环境噪声,提升翻译质量。 2. 信号传输:采用高速宽带网络进行数据传输,如5G、光纤等,以保证音频信号在...
这得益于编码器-解码器框架的发展,尤其是Transformer模型在语音翻译中的应用,它能更好地捕捉语音的上下文信息并直接生成翻译。端到端模型的优势在于减少了延迟,简化了服务部署,但计算复杂度较高,且需要大量的带...
用户通过装有摄像头和Flash Player的设备可以捕捉并发布实况视频或音频,而服务器则能同时处理大量连接,连接数量取决于服务器性能。每个连接如同大管道,传输大量数据流。客户端和服务器端的应用程序分别由...
- 摄像头/麦克风:客户端可以利用内置摄像头和麦克风捕捉实况视频和音频,并通过服务器广播给其他用户。 FMS3支持并发处理大量连接,最大连接数取决于服务器硬件性能。应用程序实例的概念允许在同一应用程序下创建...
本设计方案主要涉及到音频处理、语音识别、机器翻译、网络传输等多个技术领域。 一、音频处理技术: 在同声传译系统中,音频处理技术扮演着非常重要的角色。该技术用于将speaker的语音信号捕捉、处理、传输和播放。...
3. 讲座/报告:关注开场白和结尾,捕捉主要论点,记笔记辅助理解。 四、详解的重要性 详解部分为考生提供了每一道题目的正确答案和解析,帮助考生理解出题者的意图,找出自己的错误原因,从而改正学习方法。同时,...
无线音频传输技术确保了翻译结果能够及时、清晰地传达给用户。高保真音频编码如AAC或aptX能保证音质,而低延迟传输技术如 Qualcomm 的 aptX Low Latency 则减少了从识别到播放的时间差,使得翻译尽可能接近实时。 ...
2. 多样化资源:包括各种文本、音频和视频材料,以丰富学生的翻译实践。 3. 反馈系统:自动评估翻译质量并提供反馈,帮助学生及时调整和改正错误。 4. 词汇和语法支持:提供词汇库和语法规则,辅助学生理解和运用。 ...
通过麦克风捕捉到的音频信号,经过预处理、特征提取、模型匹配等步骤,将声音转化为可理解的文字。目前,深度学习技术如卷积神经网络(CNN)和长短期记忆网络(LSTM)被广泛应用在语音识别中,显著提升了识别准确率...
本文档将深入探讨一种专为英语翻译学习设计的录音笔,它集成了先进的音频录制、播放及翻译功能,旨在提升语言学习者的听力理解能力和口语表达技巧。 录音笔作为学习辅助工具,其核心功能在于高质量的音频录制。这种...
**Kinect官方文档中文翻译** 本文档集合了微软Kinect SDK for Windows的中文翻译,旨在为开发者提供关于Kinect技术的全面理解与实践指导。Kinect是一款革命性的体感设备,它通过捕捉人体运动和环境信息,使得用户...
5. **图像识别与OCR(Optical Character Recognition)**:对于纸质文档或屏幕上的文字,移动终端可以使用摄像头捕捉图像并识别文字,然后进行翻译。OCR技术的进步使得这一过程更为精准和高效。 6. **实时通信集成*...
5. **神经网络机器翻译**:NMT利用深度学习模型,如长短时记忆网络(LSTM)或Transformer结构,来捕捉句子的全局依赖性,提供更流畅的翻译。近年来,NMT的性能超越了SMT,成为主流的机器翻译方法。 6. **自然语言...
真题中的文章不仅提供了丰富的词汇和句型实例,还让考生有机会实践如何在有限的时间内捕捉文章主旨和细节。 “写作”是测试考生逻辑思维和语言组织能力的部分。考生需要根据所给题目或情景写出一篇结构清晰、表达...
基于中文文本情绪分析自动切换参考音频的 GPT-SoVITS 推理 GPT, 通常指的是“Generative Pre-trained Transformer”(生成式预训练转换器),是一个在自然语言处理(NLP)领域非常流行的深度学习模型架构。GPT模型...
这些模型通过自注意力机制处理输入序列,捕捉全局依赖,使得翻译质量得到显著提升。 最后,语音合成,即TTS(Text-to-Speech),是将文本转换为语音的过程。深度学习模型如WaveNet和 Tacotron 2 已经在语音合成领域...