AudioGroup 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
AudioGroup 是扬声器、麦克风和 AudioStream
的音频中心。
[Android.Runtime.Register("android/net/rtp/AudioGroup", DoNotGenerateAcw=true)]
public class AudioGroup : Java.Lang.Object
[<Android.Runtime.Register("android/net/rtp/AudioGroup", DoNotGenerateAcw=true)>]
type AudioGroup = class
inherit Object
- 继承
- 属性
注解
AudioGroup 是扬声器、麦克风和 AudioStream
的音频中心。 通过调用 #setMode(int)
RtpStream#setMode(int)
或 ,可以在逻辑上打开或关闭其中每个组件。 AudioGroup 将遍历这些组件,并在其执行循环中逐个处理它们。 循环由四个步骤组成。 首先,对于 不在 中的每个 RtpStream#MODE_SEND_ONLY
AudioStream,将解码其传入的数据包,并将其存储在其缓冲区中。 然后,如果启用了麦克风,则处理录制的音频并将其存储在其缓冲区中。 第三,如果扬声器已启用,则混合所有 AudioStream 缓冲区并播放。 最后,对于 不在 中的每个 RtpStream#MODE_RECEIVE_ONLY
AudioStream,混合所有其他缓冲区并发送回编码的数据包。 如果其中没有 AudioStream,则 AudioGroup 不执行任何操作。
使用这些类之前,必须注意一些事项。 性能与系统负载和网络带宽密切相关。 通常,更简单 AudioCodec
的 CPU 周期成本更少,但需要更多网络带宽,反之亦然。 同时使用两个 AudioStream 不仅使负载和带宽翻倍。 条件因设备而异,开发人员应选择正确的组合以获得最佳结果。
有时,同时保留多个 AudioGroup 会很有用。 例如,IP 语音 (VoIP) 应用程序可能希望将电话会议置于暂停状态,以便进行新的呼叫,但仍允许电话会议中的人员相互交谈。 这可以使用两个 AudioGroup 轻松完成,但存在一些限制。 由于扬声器和麦克风是全局共享资源,因此一次只允许一个 AudioGroup 在 以外的 #MODE_ON_HOLD
模式下运行。 其他资源将无法获取这些资源,并且以无提示方式失败。
<p class=“note”>使用此类需要 android.Manifest.permission#RECORD_AUDIO
权限。 开发人员应将音频模式设置为 AudioManager#MODE_IN_COMMUNICATION
using AudioManager#setMode(int)
,并在未使用任何 AudioGroup 时将其更改回去。</P>
此成员已弃用。 android.net.sip.SipManager
和 关联的类不再受支持,不应用作未来 VOIP 应用的基础。
的 android.net.rtp.AudioGroup
Java 文档。
此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。
构造函数
AudioGroup() |
创建空的 AudioGroup。 |
AudioGroup(Context) |
创建空的 AudioGroup。 |
AudioGroup(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
属性
Class |
返回此 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
JniIdentityHashCode |
AudioGroup 是扬声器、麦克风和 |
JniPeerMembers |
AudioGroup 是扬声器、麦克风和 |
Mode |
返回当前模式。 - 或 - 更改当前模式。 |
PeerReference |
AudioGroup 是扬声器、麦克风和 |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不应直接从代码使用。 |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不应直接从代码使用。 |
方法
Clear() |
删除此组中的每一个 |
Clone() |
创建并返回此对象的副本。 (继承自 Object) |
Dispose() |
AudioGroup 是扬声器、麦克风和 |
Dispose(Boolean) |
AudioGroup 是扬声器、麦克风和 |
Equals(Object) |
指示其他某个对象是否“等于”此对象。 (继承自 Object) |
GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
GetStreams() |
返回 |
JavaFinalize() |
当垃圾回收确定不再引用对象时,由对象上的垃圾回收器调用。 (继承自 Object) |
Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
SendDtmf(Int32) |
向此组中的每个用户发送 DTMF 数字 |
SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
ToArray<T>() |
AudioGroup 是扬声器、麦克风和 |
ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
UnregisterFromRuntime() |
AudioGroup 是扬声器、麦克风和 |
Wait() |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<> (继承自 Object) |
Wait(Int64) |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<> (继承自 Object) |
Wait(Int64, Int32) |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<> (继承自 Object) |
显式接口实现
IJavaPeerable.Disposed() |
AudioGroup 是扬声器、麦克风和 |
IJavaPeerable.DisposeUnlessReferenced() |
AudioGroup 是扬声器、麦克风和 |
IJavaPeerable.Finalized() |
AudioGroup 是扬声器、麦克风和 |
IJavaPeerable.JniManagedPeerState |
AudioGroup 是扬声器、麦克风和 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
AudioGroup 是扬声器、麦克风和 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
AudioGroup 是扬声器、麦克风和 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
AudioGroup 是扬声器、麦克风和 |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
AudioGroup 是扬声器、麦克风和 |
GetJniTypeName(IJavaPeerable) |
AudioGroup 是扬声器、麦克风和 |