Android is experiencing a delayed crash after an Audio Capture Component is destroyed. This appears to be a potential problem with the way Android's implementation of Audio Capture Component closes or fails to close the steam with Oboe.

Levels that reproduce on Android do not reproduce on other platform's, implying it is a problem with the device specific Audio Capture code and not the Audio Capture Component functionality itself.

Steps to Reproduce
  • Create an empty actor, and place it into a level
  • Attach an Audio Capture Component to that actor, and ensure it is set to auto-activate
  • Set up the ability to call the functions Stop and Destroy on the Audio Capture Component, as well as the ability to Restart the whole level. This can be done either through trigger boxes or keyboard input
  • Launch the level on Android
  • Go through each function individually (Stop, Restart, and Destroy). This may require opening and closing the game multiple times

Expected Result:

  • Stopping or Destroying the Audio Component results in the program causes it to cleanly stop capturing audio, and a level Restart causes the Audio Capture Component to cleanly get destroyed and then recreated

Actual Result:

  • After any of these event, the program will crash after a minute or so, in check(!CaptureSynth.IsStreamOpen()); within UAudioCaptureComponent::FinishDestroy

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-131951 in the post.

Login to Vote

Cannot Reproduce
ComponentUE - Audio
Affects Versions4.26
Target Fix5.1
CreatedOct 15, 2021
ResolvedSep 14, 2022
UpdatedOct 19, 2022