David Liu

audio touch ups

... ... @@ -32,7 +32,9 @@ class LiveKit {
if (localParticipant != null) {
val factory = component.peerConnectionFactory()
if (options.sendAudio) {
localParticipant.publishAudioTrack(createLocalAudioTrack(factory))
val audioTrack = createLocalAudioTrack(factory)
localParticipant.publishAudioTrack(audioTrack)
audioTrack.enabled = true
}
if (options.sendVideo) {
val videoTrack = createLocalVideoTrack(
... ...
... ... @@ -77,6 +77,13 @@ class RTCModule {
}
return JavaAudioDeviceModule.builder(appContext)
.setSamplesReadyCallback(object : JavaAudioDeviceModule.SamplesReadyCallback {
override fun onWebRtcAudioRecordSamplesReady(samples: JavaAudioDeviceModule.AudioSamples?) {
Timber.v { "samples: $samples" }
}
})
.setUseHardwareAcousticEchoCanceler(true)
.setUseHardwareNoiseSuppressor(true)
.setAudioRecordErrorCallback(audioRecordErrorCallback)
.setAudioTrackErrorCallback(audioTrackErrorCallback)
.setAudioRecordStateCallback(audioRecordStateCallback)
... ...
... ... @@ -2,12 +2,19 @@ package io.livekit.android.room.track
import org.webrtc.MediaConstraints
import org.webrtc.PeerConnectionFactory
import java.util.*
class LocalAudioTrack(
name: String,
audioOptions: AudioOptions? = null,
rtcTrack: org.webrtc.AudioTrack
) : AudioTrack(name, rtcTrack) {
var enabled: Boolean
get() = rtcTrack.enabled()
set(value) {
rtcTrack.setEnabled(value)
}
var sid: Sid? = null
internal set
var audioOptions = audioOptions
... ... @@ -22,8 +29,7 @@ class LocalAudioTrack(
val audioSource = factory.createAudioSource(audioConstraints)
val rtcAudioTrack =
factory.createAudioTrack("phone_audio_track_id", audioSource)
rtcAudioTrack.setEnabled(true)
factory.createAudioTrack(UUID.randomUUID().toString(), audioSource)
return LocalAudioTrack(name = name, rtcTrack = rtcAudioTrack)
}
... ...
... ... @@ -74,7 +74,8 @@ class CallActivity : AppCompatActivity() {
}
val result = audioManager.requestAudioFocus(
{ },
AudioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN
AudioManager.STREAM_VOICE_CALL,
AudioManager.AUDIOFOCUS_GAIN,
)
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
Timber.v { "Audio focus request granted for VOICE_CALL streams" }
... ...