Fix iOS audio: app-owned manual audio session for stable playout - #346
Draft
MaxHeimbrock wants to merge 1 commit into
Draft
Fix iOS audio: app-owned manual audio session for stable playout#346MaxHeimbrock wants to merge 1 commit into
MaxHeimbrock wants to merge 1 commit into
GitHub Actions / Test Results (6000.0.49f1)
completed
Jul 9, 2026 in 0s
⚠️ Test Results (6000.0.49f1) - 131/146, skipped: 15 - Passed in 15.171s
⚠️ editmode-results.xml - 73/75, skipped: 2 - Passed in 0.295s
⚠️ playmode-results.xml - 58/71, skipped: 13 - Passed in 14.876s
Details
⚠️ editmode-results.xml - 73/75, skipped: 2 - Passed in 0.295s
- ✅ LiveKit.EditModeTests.DataStreamTests - 4/4 - Passed in 0.099s
- ✅ OnChunk_ConcurrentProducerAndConsumer_AllChunksObservedInOrder - Passed in 0.068s
- ✅ OnChunk_MultipleChunksBeforeConsumerDrains_AllChunksAreObserved - Passed in 0.002s
- ✅ OnChunk_RacingWithReset_NoChunkLost - Passed in 0.018s
- ✅ OnEos_RacingWithChunks_FinalStateConsistent - Passed in 0.012s
- ✅ LiveKit.EditModeTests.DataTrackTests - 6/6 - Passed in 0.010s
- ✅ DataTrackFrame_Constructor_WithExplicitTimestamp_SetsValue - Passed in 0.001s
- ✅ DataTrackFrame_DurationSinceTimestamp_NullWithoutTimestamp - Passed in 0.001s
- ✅ DataTrackFrame_DurationSinceTimestamp_ReturnsValue - Passed in 0.007s
- ✅ DataTrackFrame_WithUserTimestampNow_DoesNotMutateOriginal - Passed in 0.001s
- ✅ DataTrackFrame_WithUserTimestampNow_OverwritesExistingTimestamp - Passed in 0.000s
- ✅ DataTrackFrame_WithUserTimestampNow_SetsTimestamp - Passed in 0.000s
- ✅ LiveKit.EditModeTests.FfiHandleTests.IsInvalid_ReturnsTrueForKnownInvalidPointers - 2/2 - Passed in 0.001s
- ✅ IsInvalid_ReturnsTrueForKnownInvalidPointers(0) - Passed in 0.001s
- ✅ IsInvalid_ReturnsTrueForKnownInvalidPointers(-1) - Passed in 0.000s
- ✅ LiveKit.EditModeTests.FfiResponseEnsureCleanTests.EnsureClean_Throws_ForOneofCases - 5/5 - Passed in 0.004s
- ✅ EnsureClean_Throws_ForOneofCases("LocalTrackMute",LiveKit.Proto.LocalTrackMuteResponse) - Passed in 0.001s
- ✅ EnsureClean_Throws_ForOneofCases("ByteStreamOpen",LiveKit.Proto.ByteStreamOpenResponse) - Passed in 0.001s
- ✅ EnsureClean_Throws_ForOneofCases("SendStreamHeader",LiveKit.Proto.SendStreamHeaderResponse) - Passed in 0.001s
- ✅ EnsureClean_Throws_ForOneofCases("SetRemoteTrackPublicationQuality",LiveKit.Proto.SetRemoteTrackPublicationQualityResponse) - Passed in 0.001s
- ✅ EnsureClean_Throws_ForOneofCases("SendChatMessage",LiveKit.Proto.SendChatMessageResponse) - Passed in 0.001s
- ✅ LiveKit.EditModeTests.FfiResponseEnsureCleanTests - 2/2 - Passed in 0.004s
- ✅ EnsureClean_DoesNotThrow_WhenMessageCaseIsNone - Passed in 0.002s
- ✅ EnsureClean_Throws_ForConnect - Passed in 0.002s
- ✅ LiveKit.EditModeTests.MonoBehaviourContextTests - 1/1 - Passed in 0.002s
- ✅ RunCoroutine_AfterInstanceDestroyed_DrainsSynchronously_DoesNotThrow - Passed in 0.002s
- ✅ LiveKit.EditModeTests.PanicEventTests - 1/1 - Passed in 0.019s
- ✅ RouteFfiEvent_Panic_RaisesPanicReceivedOnMainThread_AndCancelsPendingCallbacks - Passed in 0.019s
- ✅ LiveKit.EditModeTests.PlatformAudioTests - 3/3 - Passed in 0.002s
- ✅ AudioDevice_StoresIndexNameGuid - Passed in 0.001s
- ✅ AudioProcessingOptions_Default_EnablesProcessingAndHardware - Passed in 0.000s
- ✅ PlatformAudioSource_NullPlatformAudio_Throws - Passed in 0.001s
- ✅ LiveKit.EditModeTests.RingBufferTests - 16/16 - Passed in 0.010s
- ✅ AvailableRead_AfterWrite_MatchesWrittenLength - Passed in 0.001s
- ✅ AvailableReadInPercent_ReturnsCorrectRatio - Passed in 0.001s
- ✅ AvailableWrite_AfterWrite_ReducedByWrittenLength - Passed in 0.000s
- ✅ AvailableWriteInPercent_ReturnsCorrectRatio - Passed in 0.000s
- ✅ Capacity_MatchesConstructorArgument - Passed in 0.000s
- ✅ Clear_ResetsState - Passed in 0.003s
- ✅ MultipleWriteReadCycles_MaintainIntegrity - Passed in 0.001s
- ✅ Read_ReturnsNumberOfBytesRead - Passed in 0.000s
- ✅ Read_WhenEmpty_ReturnsZero - Passed in 0.000s
- ✅ SkipRead_AdvancesReadPosition - Passed in 0.000s
- ✅ SkipRead_BeyondAvailable_ClampedToAvailable - Passed in 0.000s
- ✅ Write_ReturnsNumberOfBytesWritten - Passed in 0.000s
- ✅ Write_WhenFull_ReturnsZero - Passed in 0.000s
- ✅ Write_WhenPartiallyFull_WritesOnlyAvailable - Passed in 0.000s
- ✅ WriteAndRead_DataMatchesInput - Passed in 0.000s
- ✅ WriteAndRead_WithWraparound_DataIntegrity - Passed in 0.000s
- ✅ LiveKit.EditModeTests.RoomDisconnectReasonTests - 3/3 - Passed in 0.013s
- ✅ Disconnected_SurfacesReasonOnPropertyAndEvent - Passed in 0.005s
- ✅ DisconnectReason_DefaultsToUnknown - Passed in 0.000s
- ✅ ParticipantDisconnected_SurfacesReasonOnEvent - Passed in 0.007s
- ✅ LiveKit.EditModeTests.RoomDisconnectTests - 2/2 - Passed in 0.001s
- ✅ Disconnect_OnNeverConnectedRoom_CalledTwice_DoesNotThrow - Passed in 0.000s
- ✅ Disconnect_OnNeverConnectedRoom_DoesNotThrow - Passed in 0.000s
- ✅ LiveKit.EditModeTests.RoomStreamHandlerTests - 4/4 - Passed in 0.003s
- ✅ RegisterByteStreamHandler_DuplicateTopic_ThrowsStreamError - Passed in 0.001s
- ✅ RegisterTextStreamHandler_DuplicateTopic_ThrowsStreamError - Passed in 0.001s
- ✅ UnregisterByteStreamHandler_AllowsReregistrationOfSameTopic - Passed in 0.000s
- ✅ UnregisterTextStreamHandler_AllowsReregistrationOfSameTopic - Passed in 0.000s
- ✅ LiveKit.EditModeTests.RpcErrorTests - 4/4 - Passed in 0.004s
- ✅ BuiltIn_HasMessageAndCodeForEveryErrorCode - Passed in 0.004s
- ✅ Constructor_DefaultDataIsNull - Passed in 0.000s
- ✅ Constructor_SetsCodeMessageAndData - Passed in 0.000s
- ✅ RpcError_IsException - Passed in 0.001s
- ✅ LiveKit.EditModeTests.SkipDispatchTests - 5/5 - Passed in 0.006s
- ✅ InlineCallback_RunsOnDispatchingBackgroundThread - Passed in 0.002s
- ✅ MainThreadCallback_TrySkipDispatch_ReturnsFalseAndDoesNotComplete - Passed in 0.000s
- ✅ RouteFfiEvent_InlineCallback_CompletesOnDispatchingThread - Passed in 0.001s
- ✅ RouteFfiEvent_MainThreadCallback_PostsToSynchronizationContext_AndDrainsCompletion - Passed in 0.001s
- ✅ TryDispatchPendingCallback_RunsCompletionSynchronouslyOnCallerThread - Passed in 0.001s
- ✅ LiveKit.EditModeTests.ThreadSafeQueueTests - 5/5 - Passed in 0.007s
- ✅ Clear_SetsCountToZero - Passed in 0.001s
- ✅ ConcurrentEnqueueDequeue_NoExceptions - Passed in 0.005s
- ✅ Dequeue_ReturnsEnqueuedItem_FIFO - Passed in 0.001s
- ✅ Dequeue_WhenEmpty_ThrowsInvalidOperationException - Passed in 0.000s
- ✅ Enqueue_IncreasesCount - Passed in 0.000s
⚠️ LiveKit.EditModeTests.UsageStrictTests.NoManualCreateNew - 0/2, skipped: 2 - Passed in 0.000s⚠️ NoManualCreateNew("FfiResponse") - Skipped⚠️ NoManualCreateNew("FfiRequest") - Skipped
- ✅ LiveKit.EditModeTests.VideoFrameTests.Create_ReturnsCorrectConcreteType - 6/6 - Passed in 0.005s
- ✅ Create_ReturnsCorrectConcreteType(I420,LiveKit.I420Buffer) - Passed in 0.003s
- ✅ Create_ReturnsCorrectConcreteType(I420A,LiveKit.I420ABuffer) - Passed in 0.000s
- ✅ Create_ReturnsCorrectConcreteType(I422,LiveKit.I422Buffer) - Passed in 0.000s
- ✅ Create_ReturnsCorrectConcreteType(I444,LiveKit.I444Buffer) - Passed in 0.000s
- ✅ Create_ReturnsCorrectConcreteType(I010,LiveKit.I010Buffer) - Passed in 0.000s
- ✅ Create_ReturnsCorrectConcreteType(Nv12,LiveKit.NV12Buffer) - Passed in 0.000s
- ✅ LiveKit.EditModeTests.VideoFrameTests - 1/1 - Passed in 0.000s
- ✅ Create_ReturnsNull_ForUnsupportedType - Passed in 0.000s
- ✅ LiveKit.EditModeTests.YieldInstructionThreadingTests - 3/3 - Passed in 0.038s
- ✅ IsDone_SetFromBackgroundThread_ObservedByForegroundSpin - Passed in 0.013s
- ✅ IsError_VisibleAcrossThreadsOnceIsDoneIsObserved - Passed in 0.004s
- ✅ KeepWaiting_FlipsToFalse_AfterBackgroundCompletion - Passed in 0.021s
⚠️ playmode-results.xml - 58/71, skipped: 13 - Passed in 14.876s
- ✅ LiveKit.PlayModeTests.AudioBufferTests - 2/2 - Passed in 1.576s
- ✅ AudioBuffer_WhenAppForegrounded_BufferIsCleared - Passed in 0.990s
- ✅ AudioBuffer_WhenBufferRunsFull_TriggersCatchupMechanism - Passed in 0.585s
- ✅ LiveKit.PlayModeTests.ByteStreamTests - 1/1 - Passed in 0.246s
- ✅ StreamBytes_WriteAndClose_ReceivedViaReadAll - Passed in 0.246s
- ✅ LiveKit.PlayModeTests.DataStreamTests - 5/5 - Passed in 0.009s
- ✅ RegisterByteHandler_FailsWithDuplicateTopic - Passed in 0.006s
- ✅ RegisterTextAndByteHandler_SameTopic_BothSucceed - Passed in 0.001s
- ✅ RegisterTextHandler_FailsWithDuplicateTopic - Passed in 0.000s
- ✅ UnregisterByteHandler_ThenRegisterSameTopic_Succeeds - Passed in 0.000s
- ✅ UnregisterTextHandler_ThenRegisterSameTopic_Succeeds - Passed in 0.001s
- ✅ LiveKit.PlayModeTests.DataTrackTests - 9/9 - Passed in 1.337s
- ✅ PublishAndUnpublish_TriggersEvents - Passed in 0.216s
- ✅ PublishDataTrack_IsPublishedReturnsTrue - Passed in 0.140s
- ✅ PublishDataTrack_Succeeds - Passed in 0.096s
- ✅ PublishDataTrack_TrackInfoMatchesOptions - Passed in 0.089s
- ✅ PushAndReceive_FramePayloadMatches - Passed in 0.213s
- ✅ PushAndReceive_TimestampIsPreserved - Passed in 0.214s
- ✅ Subscribe_Succeeds - Passed in 0.199s
- ✅ TryPush_Succeeds - Passed in 0.084s
- ✅ Unpublish_IsPublishedReturnsFalse - Passed in 0.085s
- ✅ LiveKit.PlayModeTests.FfiBoundaryTests - 1/1 - Passed in 0.083s
- ✅ Disconnect_CalledTwice_DoesNotThrow - Passed in 0.083s
- ✅ LiveKit.PlayModeTests.FfiHandleDisposalTests - 1/1 - Passed in 0.195s
- ✅ StreamWriter_LeakedHandle_DoesNotCrashOnGC - Passed in 0.195s
- ✅ LiveKit.PlayModeTests.LateJoinTrackSubscriptionTests - 1/1 - Passed in 0.360s
- ✅ LateJoiner_ReceivesTrackSubscribedForAlreadyPublishedTracks - Passed in 0.360s
- ✅ LiveKit.PlayModeTests.LocalParticipantTests - 4/4 - Passed in 0.321s
- ✅ Identity_MatchesProvided - Passed in 0.092s
- ✅ Metadata_MatchesProvided - Passed in 0.087s
- ✅ Name_MatchesProvided - Passed in 0.069s
- ✅ Sid_StartsWithPA - Passed in 0.073s
- ✅ LiveKit.PlayModeTests.PanicRoomTeardownTests - 1/1 - Passed in 0.086s
- ✅ Panic_DisconnectsConnectedRoom - Passed in 0.086s
- ✅ LiveKit.PlayModeTests.ParticipantMetadataTests - 3/3 - Passed in 0.597s
- ✅ SetAttributes_UpdatesLocalAndTriggersRemoteEvent - Passed in 0.192s
- ✅ SetMetadata_UpdatesLocalAndTriggersRemoteEvent - Passed in 0.198s
- ✅ SetName_UpdatesLocalAndTriggersRemoteEvent - Passed in 0.208s
⚠️ LiveKit.PlayModeTests.PlatformAudioIntegrationTests - 0/4, skipped: 4 - Passed in 0.010s⚠️ MultipleSourcesFromOneManager_Publish - Skipped⚠️ PlatformAudioFramesReachRemote_ViaStats - Skipped⚠️ PublishPlatformAudioTrack_EndToEnd - Skipped⚠️ UnpublishPlatformAudioTrack_Propagates - Skipped
⚠️ LiveKit.PlayModeTests.PlatformAudioTests - 0/5, skipped: 5 - Passed in 0.008s⚠️ CreateSource_WithCustomOptions - Skipped⚠️ CreateSourceAndTrack_WhenAvailable - Skipped⚠️ EnumerateDevices_AndSelectByGuid_DoesNotThrow - Skipped⚠️ SetRecordingDeviceByIndex_OutOfRange_Throws - Skipped⚠️ StartThenStopRecording_DoesNotThrow - Skipped
- ✅ LiveKit.PlayModeTests.PublishDataTests - 2/2 - Passed in 0.350s
- ✅ ReturnsError_ForOversizedPayload - Passed in 0.184s
- ✅ ReturnsSuccess_ForSmallPayload - Passed in 0.166s
⚠️ LiveKit.PlayModeTests.RoomTests - 7/11, skipped: 4 - Passed in 3.230s- ✅ Connect_FailsWithInvalidUrl - Passed in 0.003s
⚠️ ConnectionState_IsConnected - Skipped⚠️ Disconnect_TriggersEvent - Skipped- ✅ GetAwaiter_CompletesImmediately_WhenAlreadyDone - Passed in 0.003s
- ✅ GetAwaiter_ResumesOnCompletion_AndSurfacesIsError - Passed in 0.003s
- ✅ GetAwaiter_ResumesOnMainThread_WhenCompletedOffThread - Passed in 0.003s
⚠️ ParticipantDisconnect_TriggersEvent - Skipped- ✅ ParticipantJoin_CreatesRemoteParticipant - Passed in 3.062s
⚠️ ParticipantJoin_TriggersEvent - Skipped- ✅ RoomName_MatchesProvided - Passed in 0.085s
- ✅ RoomSid_StartsWithRM - Passed in 0.071s
- ✅ LiveKit.PlayModeTests.RpcTests - 7/7 - Passed in 1.280s
- ✅ RegisterRpcMethod_AndPerformRpc_ReturnsResponse - Passed in 0.198s
- ✅ PerformRpc_NearLimitPayload_EchoesRoundTrip - Passed in 0.207s
- ✅ PerformRpc_ConcurrentInvocations_AllComplete - Passed in 0.167s
- ✅ PerformRpc_HandlerThrowsGenericException_ReturnsApplicationError - Passed in 0.196s
- ✅ PerformRpc_HandlerThrowsRpcError_PropagatesError - Passed in 0.153s
- ✅ PerformRpc_UnregisteredMethod_ReturnsUnsupportedMethod - Passed in 0.175s
- ✅ UnregisterRpcMethod_ThenPerformRpc_ReturnsUnsupportedMethod - Passed in 0.184s
- ✅ LiveKit.PlayModeTests.StreamLifecycleTests - 1/1 - Passed in 0.187s
- ✅ SendFile_RecipientReceivesBytes - Passed in 0.187s
- ✅ LiveKit.PlayModeTests.TextStreamTests - 4/4 - Passed in 0.724s
- ✅ SendText_ReceivedByHandler_ContentMatches - Passed in 0.236s
- ✅ SendText_WithTopic_DispatchesToCorrectHandler - Passed in 0.151s
- ✅ StreamText_CloseWithoutReason_Succeeds - Passed in 0.169s
- ✅ StreamText_WriteAndClose_ReceivedViaReadAll - Passed in 0.169s
- ✅ LiveKit.PlayModeTests.TrackTests - 8/8 - Passed in 3.646s
- ✅ LocalAudioTrack_SetMute_TrueFalse_TogglesSourceMuteState - Passed in 0.092s
- ✅ PublishAudioTrack_UnpublishAndRepublish_Succeeds - Passed in 0.145s
- ✅ RemoteTrack_GetStats_ReturnsNoError - Passed in 1.911s
- ✅ RemoteTrack_SetEnabled_FalseAndTrue_DoesNotThrow - Passed in 0.374s
- ✅ RemoteTrackPublication_PublisherDisablesCamera_UpdatesFlagAndTriggersEvent - Passed in 0.217s
- ✅ RemoteTrackPublication_PublisherMutesMic_UpdatesFlagAndTriggersEvent - Passed in 0.368s
- ✅ RemoteTrackPublication_SetVideoQuality_DoesNotThrow - Passed in 0.194s
- ✅ RemoteTrackPublication_Unsubscribe_UpdatesFlagAndTriggersEvent - Passed in 0.345s
- ✅ LiveKit.PlayModeTests.VideoFrameMetadataTests - 1/1 - Passed in 0.530s
- ✅ VideoFrame_AttachedMetadata_ReceivedOnSubscriber - Passed in 0.530s
Loading