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
的音訊中樞。 呼叫 或 RtpStream#setMode(int)
,即可以邏輯方式開啟或關閉 #setMode(int)
這些元件。 AudioGroup 會經歷這些元件,並在其執行迴圈內逐一處理這些元件。 迴圈包含四個步驟。 首先,針對不在 中的 RtpStream#MODE_SEND_ONLY
每個 AudioStream,解碼其傳入封包,並將其儲存在其緩衝區中。 然後,如果已啟用麥克風,請處理錄製的音訊並儲存在其緩衝區中。 第三,如果已啟用喇叭,請混合所有 AudioStream 緩衝區並播放。 最後,針對不在 中的每個 RtpStream#MODE_RECEIVE_ONLY
AudioStream,混合所有其他緩衝區,並傳回編碼的封包。 如果其中沒有 AudioStream,AudioGroup 就不會執行任何動作。
使用這些類別之前,必須先注意幾件事。 效能與系統負載和網路頻寬高度相關。 通常較簡單的 AudioCodec
CPU 週期成本較少,但需要更多網路頻寬,反之亦然。 同時使用兩個 AudioStreams 不僅會加倍負載,也會讓頻寬倍增。 條件會因裝置而異,開發人員應該選擇正確的組合,以獲得最佳結果。
有時最好同時保留多個 AudioGroup。 例如,Voice over IP (VoIP) 應用程式可能會想要保留通話,以便進行新的通話,但仍允許通話中的人員彼此交談。 這可以使用兩個 AudioGroup 輕鬆完成,但有一些限制。 由於喇叭和麥克風是全域共用的資源,因此一次只能有一個 AudioGroup 在 以外的 #MODE_ON_HOLD
模式中執行。 其他人將無法取得這些資源,並以無訊息方式失敗。
<p class=「note」 > 使用這個類別需要 android.Manifest.permission#RECORD_AUDIO
許可權。 開發人員應該將音訊模式設定為 AudioManager#MODE_IN_COMMUNICATION
使用 AudioManager#setMode(int)
,並在沒有任何 AudioGroups 正在使用時將它變更回 。 </P>
已取代這個成員。 android.net.sip.SipManager
不再支援 和 相關聯的類別,不應作為未來 VOIP 應用程式的基礎。
的 android.net.rtp.AudioGroup
JAVA 檔。
此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。
建構函式
AudioGroup() |
建立空的 AudioGroup。 |
AudioGroup(Context) |
建立空的 AudioGroup。 |
AudioGroup(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 標記法時使用的建構函式;由執行時間呼叫。 |
屬性
Class |
傳回這個 |
Handle |
基礎 Android 實例的控制碼。 (繼承來源 Object) |
JniIdentityHashCode |
AudioGroup 是喇叭、麥克風和 |
JniPeerMembers |
AudioGroup 是喇叭、麥克風和 |
Mode |
傳回目前的模式。 -或- 變更目前的模式。 |
PeerReference |
AudioGroup 是喇叭、麥克風和 |
ThresholdClass |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 |
ThresholdType |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 |
方法
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 < notified/em > 或 < em > interrupted < /em > 。 >< (繼承來源 Object) |
Wait(Int64) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/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 是喇叭、麥克風和 |