正在显示
1 个修改的文件
包含
52 行增加
和
0 行删除
| @@ -387,6 +387,7 @@ class LocalParticipantMockE2ETest : MockE2ETest() { | @@ -387,6 +387,7 @@ class LocalParticipantMockE2ETest : MockE2ETest() { | ||
| 387 | 387 | ||
| 388 | assertTrue(sentRequest.hasUpdateAudioTrack()) | 388 | assertTrue(sentRequest.hasUpdateAudioTrack()) |
| 389 | val features = sentRequest.updateAudioTrack.featuresList | 389 | val features = sentRequest.updateAudioTrack.featuresList |
| 390 | + assertEquals(3, features.size) | ||
| 390 | assertTrue(features.contains(AudioTrackFeature.TF_ECHO_CANCELLATION)) | 391 | assertTrue(features.contains(AudioTrackFeature.TF_ECHO_CANCELLATION)) |
| 391 | assertTrue(features.contains(AudioTrackFeature.TF_NOISE_SUPPRESSION)) | 392 | assertTrue(features.contains(AudioTrackFeature.TF_NOISE_SUPPRESSION)) |
| 392 | assertTrue(features.contains(AudioTrackFeature.TF_AUTO_GAIN_CONTROL)) | 393 | assertTrue(features.contains(AudioTrackFeature.TF_AUTO_GAIN_CONTROL)) |
| @@ -431,9 +432,60 @@ class LocalParticipantMockE2ETest : MockE2ETest() { | @@ -431,9 +432,60 @@ class LocalParticipantMockE2ETest : MockE2ETest() { | ||
| 431 | 432 | ||
| 432 | assertTrue(sentRequest.hasUpdateAudioTrack()) | 433 | assertTrue(sentRequest.hasUpdateAudioTrack()) |
| 433 | val features = sentRequest.updateAudioTrack.featuresList | 434 | val features = sentRequest.updateAudioTrack.featuresList |
| 435 | + assertEquals(4, features.size) | ||
| 434 | assertTrue(features.contains(AudioTrackFeature.TF_ECHO_CANCELLATION)) | 436 | assertTrue(features.contains(AudioTrackFeature.TF_ECHO_CANCELLATION)) |
| 435 | assertTrue(features.contains(AudioTrackFeature.TF_NOISE_SUPPRESSION)) | 437 | assertTrue(features.contains(AudioTrackFeature.TF_NOISE_SUPPRESSION)) |
| 436 | assertTrue(features.contains(AudioTrackFeature.TF_AUTO_GAIN_CONTROL)) | 438 | assertTrue(features.contains(AudioTrackFeature.TF_AUTO_GAIN_CONTROL)) |
| 437 | assertTrue(features.contains(AudioTrackFeature.TF_ENHANCED_NOISE_CANCELLATION)) | 439 | assertTrue(features.contains(AudioTrackFeature.TF_ENHANCED_NOISE_CANCELLATION)) |
| 438 | } | 440 | } |
| 441 | + | ||
| 442 | + @Test | ||
| 443 | + fun bypassUpdatesAudioFeatures() = runTest { | ||
| 444 | + connect() | ||
| 445 | + | ||
| 446 | + val audioProcessingController = MockAudioProcessingController() | ||
| 447 | + room.localParticipant.publishAudioTrack( | ||
| 448 | + LocalAudioTrack( | ||
| 449 | + name = "", | ||
| 450 | + mediaTrack = MockAudioStreamTrack(id = TestData.LOCAL_TRACK_PUBLISHED.trackPublished.cid), | ||
| 451 | + options = LocalAudioTrackOptions(), | ||
| 452 | + audioProcessingController = audioProcessingController, | ||
| 453 | + dispatcher = coroutineRule.dispatcher, | ||
| 454 | + ), | ||
| 455 | + ) | ||
| 456 | + | ||
| 457 | + advanceUntilIdle() | ||
| 458 | + wsFactory.ws.clearRequests() | ||
| 459 | + | ||
| 460 | + audioProcessingController.capturePostProcessor = object : AudioProcessorInterface { | ||
| 461 | + override fun isEnabled(): Boolean = true | ||
| 462 | + | ||
| 463 | + override fun getName(): String = "krisp_noise_cancellation" | ||
| 464 | + | ||
| 465 | + override fun initializeAudioProcessing(sampleRateHz: Int, numChannels: Int) {} | ||
| 466 | + | ||
| 467 | + override fun resetAudioProcessing(newRate: Int) {} | ||
| 468 | + | ||
| 469 | + override fun processAudio(numBands: Int, numFrames: Int, buffer: ByteBuffer) {} | ||
| 470 | + } | ||
| 471 | + assertEquals(1, wsFactory.ws.sentRequests.size) | ||
| 472 | + | ||
| 473 | + wsFactory.ws.clearRequests() | ||
| 474 | + | ||
| 475 | + audioProcessingController.bypassCapturePostProcessing = true | ||
| 476 | + assertEquals(1, wsFactory.ws.sentRequests.size) | ||
| 477 | + // Verify the update audio track request gets the proper publish options set. | ||
| 478 | + val requestString = wsFactory.ws.sentRequests[0].toPBByteString() | ||
| 479 | + val sentRequest = LivekitRtc.SignalRequest.newBuilder() | ||
| 480 | + .mergeFrom(requestString) | ||
| 481 | + .build() | ||
| 482 | + | ||
| 483 | + assertTrue(sentRequest.hasUpdateAudioTrack()) | ||
| 484 | + val features = sentRequest.updateAudioTrack.featuresList | ||
| 485 | + assertEquals(3, features.size) | ||
| 486 | + assertTrue(features.contains(AudioTrackFeature.TF_ECHO_CANCELLATION)) | ||
| 487 | + assertTrue(features.contains(AudioTrackFeature.TF_NOISE_SUPPRESSION)) | ||
| 488 | + assertTrue(features.contains(AudioTrackFeature.TF_AUTO_GAIN_CONTROL)) | ||
| 489 | + assertFalse(features.contains(AudioTrackFeature.TF_ENHANCED_NOISE_CANCELLATION)) | ||
| 490 | + } | ||
| 439 | } | 491 | } |
-
请 注册 或 登录 后发表评论