32 lines
1.0 KiB
Haxe
32 lines
1.0 KiB
Haxe
package funkin.external.apple;
|
|
|
|
#if ((ios || macos) && cpp)
|
|
/**
|
|
* A utility class to manage the audio session on apple devices.
|
|
*/
|
|
@:build(funkin.util.macro.LinkerMacro.xml('project/Build.xml'))
|
|
@:include('AudioSession.hpp')
|
|
@:unreflective
|
|
extern class AudioSession
|
|
{
|
|
/**
|
|
* Initializes the audio session for playback.
|
|
*
|
|
* This function configures the shared AVAudioSession instance with the following settings:
|
|
* - Sets the audio session category to Playback, allowing Bluetooth A2DP and mixing with spoken audio interruptions.
|
|
* - For iOS 17.0 and above, disables interruption on route disconnect.
|
|
* - For iOS 14.5 and above, prefers no interruptions from system alerts.
|
|
*/
|
|
@:native('Apple_AudioSession_Initialize')
|
|
static function initialize():Void;
|
|
|
|
/**
|
|
* Sets the active state of the shared AVAudioSession.
|
|
*
|
|
* @param active Whether to activate or deactivate the audio session.
|
|
*/
|
|
@:native('Apple_AudioSession_SetActive')
|
|
static function setActive(active:Bool):Void;
|
|
}
|
|
#end
|