MediaRecorder 类

定义

用于录制音频和视频。

[Android.Runtime.Register("android/media/MediaRecorder", DoNotGenerateAcw=true)]
public class MediaRecorder : Java.Lang.Object, Android.Media.IAudioRecordingMonitor, Android.Media.IAudioRouting, Android.Media.IMicrophoneDirection, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/media/MediaRecorder", DoNotGenerateAcw=true)>]
type MediaRecorder = class
    inherit Object
    interface IAudioRecordingMonitor
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IAudioRouting
    interface IMicrophoneDirection
继承
MediaRecorder
属性
实现

注解

用于录制音频和视频。 记录控件基于简单的状态机, (请参阅下面的) 。

<img src=“https://developer.android.com/images/mediarecorder_state_diagram.gif” border=“0” />

使用 MediaRecorder 录制音频的常见情况如下:

MediaRecorder recorder = new MediaRecorder();
            recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            recorder.setOutputFile(PATH_NAME);
            recorder.prepare();
            recorder.start();   // Recording is now started
            ...
            recorder.stop();
            recorder.reset();   // You can reuse the object by going back to setAudioSource() step
            recorder.release(); // Now the object cannot be reused

应用程序可能需要注册信息和错误事件,以便在录制期间收到某些内部更新和可能的运行时错误。 通过调用 ( (setOnInfoListener 和/或 #setOnErrorListener(OnErrorListener)setOnErrorListener) #setOnInfoListener(OnInfoListener)设置适当的侦听器来注册此类事件。 为了接收与这些侦听器关联的相应回调,应用程序需要在线程上创建 MediaRecorder 对象,该线程运行 (main UI 线程默认已具有运行) 的 Looper。

<strong>注意:</strong> 目前,MediaRecorder 在模拟器上不起作用。

<div class=“special reference”><h3>开发人员指南</h3>

有关如何使用 MediaRecorder 录制视频的详细信息,请阅读 相机 开发人员指南。 有关如何使用 MediaRecorder 录制声音的详细信息,请阅读 音频捕获 开发人员指南。

</Div>

android.media.MediaRecorderJava 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

构造函数

MediaRecorder()

默认构造函数。

MediaRecorder(Context)

默认构造函数。

MediaRecorder(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

字段

MediaErrorServerDied
已过时.

媒体服务器已死亡。

MediaRecorderErrorUnknown
已过时.

未指定的媒体记录器错误。

属性

ActiveMicrophones

返回表示活动麦克风的列表 MicrophoneInfo

ActiveRecordingConfiguration

返回此录音机的当前活动音频录制。

AudioSourceMax

获取音频源的最大值。

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

用于录制音频和视频。

(继承自 Object)
JniPeerMembers

用于录制音频和视频。

LogSessionId

返回 LogSessionId MediaRecorder 的 。 - 或 - 设置 LogSessionId MediaRecorder 的 。

MaxAmplitude

返回自上次调用此方法以来采样的最大绝对振幅。

Metrics

返回有关当前 Mediarecorder 实例的指标数据。

PeerReference

用于录制音频和视频。

(继承自 Object)
PreferredDevice

返回指定的 #setPreferredDevice所选输入设备。

PrivacySensitive

返回此 MediaRecorder 是否在音频捕获方面标记为隐私敏感。 - 或 - 指示此捕获请求对隐私敏感,不允许任何并发捕获。

RoutedDevice

返回一个 AudioDeviceInfo 标识此 MediaRecorder 的当前路由注意:仅当 MediaRecorder 当前正在录制时,查询才有效。

Surface

获取在使用 SURFACE 视频源时要从中录制的图面。

ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

方法

AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler)

添加 以 AudioRouting.OnRoutingChangedListener 在此 MediaRecorder 上接收路由更改通知。

Clone()

创建并返回此对象的副本。

(继承自 Object)
Dispose()

用于录制音频和视频。

(继承自 Object)
Dispose(Boolean)

用于录制音频和视频。

(继承自 Object)
Equals(Object)

指示其他某个对象是否“等于”此对象。

(继承自 Object)
GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
JavaFinalize()

当垃圾回收确定不再引用对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Pause()

暂停录制。

Prepare()

准备记录器以开始捕获和编码数据。

RegisterAudioRecordingCallback(IExecutor, AudioManager+AudioRecordingCallback)

注册回调,以通过 收到音频捕获更改的 AudioManager.AudioRecordingCallback通知。

Release()

释放与此 MediaRecorder 对象关联的资源。

RemoveOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener)

AudioRouting.OnRoutingChangedListener删除之前已添加以接收重新路由通知的 。

Reset()

将 MediaRecorder 重新启动到其空闲状态。

Resume()

继续录制。

SetAudioChannels(Int32)

设置用于录制的音频通道数。

SetAudioEncoder(AudioEncoder)

设置用于录制的音频编码器。

SetAudioEncodingBitRate(Int32)

设置录制的音频编码比特率。

SetAudioProfile(EncoderProfiles+AudioProfile)

使用 AudioProfile 中的设置进行录制。

SetAudioSamplingRate(Int32)

设置录制的音频采样率。

SetAudioSource(AudioSource)

设置用于录制的音频源。

SetAuxiliaryOutputFile(FileDescriptor)
已过时.

当前未实现。

SetAuxiliaryOutputFile(String)
已过时.

当前未实现。

SetCamera(Camera)
已过时.

android.hardware.Camera设置用于录制的 。

SetCaptureRate(Double)

设置视频帧捕获速率。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
SetInputSurface(Surface)

将录制器配置为在使用 SURFACE 视频源时使用永久性表面。

SetLocation(Single, Single)

在输出文件中设置和存储 (纬度和经度) 地理数据。

SetMaxDuration(Int32)

设置录制会话的最大持续时间 (毫秒) 。

SetMaxFileSize(Int64)

设置记录会话) 最大文件大小 ((以字节为单位)。

SetNextOutputFile(File)

设置在上一个输出或 #setNextOutputFile) 达到最大文件大小时要使用的下一个输出#setOutputFile文件。

SetNextOutputFile(FileDescriptor)

设置在上一个输出或 #setNextOutputFile) 达到最大文件大小时要使用的下一个输出文件#setOutputFile描述符。

SetOnErrorListener(MediaRecorder+IOnErrorListener)

注册在录制时出错时要调用的回调。

SetOnInfoListener(MediaRecorder+IOnInfoListener)

注册在录制时发生信息性事件时要调用的回调。

SetOrientationHint(Int32)

设置输出视频播放的方向提示。

SetOutputFile(File)

传入要写入的文件对象。

SetOutputFile(FileDescriptor)

传入要写入的文件的文件描述符。

SetOutputFile(String)

设置要生成的输出文件的路径。

SetOutputFormat(OutputFormat)

设置录制期间生成的输出文件的格式。

SetPreferredDevice(AudioDeviceInfo)

指定通过 AudioDeviceInfo 对象 (音频设备,) 从此 MediaRecorder 路由输入。

SetPreferredMicrophoneDirection(MicDirection)

指定用于处理) 的逻辑麦克风 (。

SetPreferredMicrophoneFieldDimension(Single)

指定缩放因子 i (。

SetPreviewDisplay(Surface)

设置 Surface 以显示录制媒体 (视频) 预览。

SetProfile(CamcorderProfile)

使用 CamcorderProfile 对象的设置进行录制。

SetVideoEncoder(VideoEncoder)

设置用于录制的视频编码器。

SetVideoEncodingBitRate(Int32)

设置录制的视频编码比特率。

SetVideoEncodingProfileLevel(MediaCodecProfileType, Int32)

设置录制所需的视频编码配置文件和级别。

SetVideoFrameRate(Int32)

设置要捕获的视频的帧速率。

SetVideoProfile(EncoderProfiles+VideoProfile)

使用 VideoProfile 对象的设置进行录制。

SetVideoSize(Int32, Int32)

设置要捕获的视频的宽度和高度。

SetVideoSource(VideoSource)

设置用于录制的视频源。

Start()

开始捕获数据并将其编码到使用 setOutputFile () 指定的文件。

Stop()

停止录制。

ToArray<T>()

用于录制音频和视频。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterAudioRecordingCallback(AudioManager+AudioRecordingCallback)

注销以前向 注册的 #registerAudioRecordingCallback(Executor, AudioManager.AudioRecordingCallback)音频录制回调。

UnregisterFromRuntime()

用于录制音频和视频。

(继承自 Object)
Wait()

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)

事件

Error

用于录制音频和视频。

Info

用于录制音频和视频。

RoutingChanged

用于录制音频和视频。

显式接口实现

IJavaPeerable.Disposed()

用于录制音频和视频。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

用于录制音频和视频。

(继承自 Object)
IJavaPeerable.Finalized()

用于录制音频和视频。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

用于录制音频和视频。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

用于录制音频和视频。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

用于录制音频和视频。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

用于录制音频和视频。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

用于录制音频和视频。

GetJniTypeName(IJavaPeerable)

用于录制音频和视频。

适用于