正在显示
4 个修改的文件
包含
20 行增加
和
4 行删除
| @@ -32,7 +32,9 @@ class LiveKit { | @@ -32,7 +32,9 @@ class LiveKit { | ||
| 32 | if (localParticipant != null) { | 32 | if (localParticipant != null) { |
| 33 | val factory = component.peerConnectionFactory() | 33 | val factory = component.peerConnectionFactory() |
| 34 | if (options.sendAudio) { | 34 | if (options.sendAudio) { |
| 35 | - localParticipant.publishAudioTrack(createLocalAudioTrack(factory)) | 35 | + val audioTrack = createLocalAudioTrack(factory) |
| 36 | + localParticipant.publishAudioTrack(audioTrack) | ||
| 37 | + audioTrack.enabled = true | ||
| 36 | } | 38 | } |
| 37 | if (options.sendVideo) { | 39 | if (options.sendVideo) { |
| 38 | val videoTrack = createLocalVideoTrack( | 40 | val videoTrack = createLocalVideoTrack( |
| @@ -77,6 +77,13 @@ class RTCModule { | @@ -77,6 +77,13 @@ class RTCModule { | ||
| 77 | } | 77 | } |
| 78 | 78 | ||
| 79 | return JavaAudioDeviceModule.builder(appContext) | 79 | return JavaAudioDeviceModule.builder(appContext) |
| 80 | + .setSamplesReadyCallback(object : JavaAudioDeviceModule.SamplesReadyCallback { | ||
| 81 | + override fun onWebRtcAudioRecordSamplesReady(samples: JavaAudioDeviceModule.AudioSamples?) { | ||
| 82 | + Timber.v { "samples: $samples" } | ||
| 83 | + } | ||
| 84 | + }) | ||
| 85 | + .setUseHardwareAcousticEchoCanceler(true) | ||
| 86 | + .setUseHardwareNoiseSuppressor(true) | ||
| 80 | .setAudioRecordErrorCallback(audioRecordErrorCallback) | 87 | .setAudioRecordErrorCallback(audioRecordErrorCallback) |
| 81 | .setAudioTrackErrorCallback(audioTrackErrorCallback) | 88 | .setAudioTrackErrorCallback(audioTrackErrorCallback) |
| 82 | .setAudioRecordStateCallback(audioRecordStateCallback) | 89 | .setAudioRecordStateCallback(audioRecordStateCallback) |
| @@ -2,12 +2,19 @@ package io.livekit.android.room.track | @@ -2,12 +2,19 @@ package io.livekit.android.room.track | ||
| 2 | 2 | ||
| 3 | import org.webrtc.MediaConstraints | 3 | import org.webrtc.MediaConstraints |
| 4 | import org.webrtc.PeerConnectionFactory | 4 | import org.webrtc.PeerConnectionFactory |
| 5 | +import java.util.* | ||
| 5 | 6 | ||
| 6 | class LocalAudioTrack( | 7 | class LocalAudioTrack( |
| 7 | name: String, | 8 | name: String, |
| 8 | audioOptions: AudioOptions? = null, | 9 | audioOptions: AudioOptions? = null, |
| 9 | rtcTrack: org.webrtc.AudioTrack | 10 | rtcTrack: org.webrtc.AudioTrack |
| 10 | ) : AudioTrack(name, rtcTrack) { | 11 | ) : AudioTrack(name, rtcTrack) { |
| 12 | + var enabled: Boolean | ||
| 13 | + get() = rtcTrack.enabled() | ||
| 14 | + set(value) { | ||
| 15 | + rtcTrack.setEnabled(value) | ||
| 16 | + } | ||
| 17 | + | ||
| 11 | var sid: Sid? = null | 18 | var sid: Sid? = null |
| 12 | internal set | 19 | internal set |
| 13 | var audioOptions = audioOptions | 20 | var audioOptions = audioOptions |
| @@ -22,8 +29,7 @@ class LocalAudioTrack( | @@ -22,8 +29,7 @@ class LocalAudioTrack( | ||
| 22 | 29 | ||
| 23 | val audioSource = factory.createAudioSource(audioConstraints) | 30 | val audioSource = factory.createAudioSource(audioConstraints) |
| 24 | val rtcAudioTrack = | 31 | val rtcAudioTrack = |
| 25 | - factory.createAudioTrack("phone_audio_track_id", audioSource) | ||
| 26 | - rtcAudioTrack.setEnabled(true) | 32 | + factory.createAudioTrack(UUID.randomUUID().toString(), audioSource) |
| 27 | 33 | ||
| 28 | return LocalAudioTrack(name = name, rtcTrack = rtcAudioTrack) | 34 | return LocalAudioTrack(name = name, rtcTrack = rtcAudioTrack) |
| 29 | } | 35 | } |
| @@ -74,7 +74,8 @@ class CallActivity : AppCompatActivity() { | @@ -74,7 +74,8 @@ class CallActivity : AppCompatActivity() { | ||
| 74 | } | 74 | } |
| 75 | val result = audioManager.requestAudioFocus( | 75 | val result = audioManager.requestAudioFocus( |
| 76 | { }, | 76 | { }, |
| 77 | - AudioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN | 77 | + AudioManager.STREAM_VOICE_CALL, |
| 78 | + AudioManager.AUDIOFOCUS_GAIN, | ||
| 78 | ) | 79 | ) |
| 79 | if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { | 80 | if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { |
| 80 | Timber.v { "Audio focus request granted for VOICE_CALL streams" } | 81 | Timber.v { "Audio focus request granted for VOICE_CALL streams" } |
-
请 注册 或 登录 后发表评论