UNPKG

whisper.rn

Version:

React Native binding of whisper.cpp

83 lines (79 loc) 3.37 kB
import { Platform } from 'react-native'; import RNWhisper from './NativeRNWhisper'; /** * @see https://developer.apple.com/documentation/avfaudio/avaudiosessioncategory?language=objc */ export let AudioSessionCategoryIos; /** * @see https://developer.apple.com/documentation/avfaudio/avaudiosessioncategoryoptions?language=objc */ (function (AudioSessionCategoryIos) { AudioSessionCategoryIos["Ambient"] = "Ambient"; AudioSessionCategoryIos["SoloAmbient"] = "SoloAmbient"; AudioSessionCategoryIos["Playback"] = "Playback"; AudioSessionCategoryIos["Record"] = "Record"; AudioSessionCategoryIos["PlayAndRecord"] = "PlayAndRecord"; AudioSessionCategoryIos["MultiRoute"] = "MultiRoute"; })(AudioSessionCategoryIos || (AudioSessionCategoryIos = {})); export let AudioSessionCategoryOptionIos; /** * @see https://developer.apple.com/documentation/avfaudio/avaudiosessionmode?language=objc */ (function (AudioSessionCategoryOptionIos) { AudioSessionCategoryOptionIos["MixWithOthers"] = "MixWithOthers"; AudioSessionCategoryOptionIos["DuckOthers"] = "DuckOthers"; AudioSessionCategoryOptionIos["InterruptSpokenAudioAndMixWithOthers"] = "InterruptSpokenAudioAndMixWithOthers"; AudioSessionCategoryOptionIos["AllowBluetooth"] = "AllowBluetooth"; AudioSessionCategoryOptionIos["AllowBluetoothA2DP"] = "AllowBluetoothA2DP"; AudioSessionCategoryOptionIos["AllowAirPlay"] = "AllowAirPlay"; AudioSessionCategoryOptionIos["DefaultToSpeaker"] = "DefaultToSpeaker"; })(AudioSessionCategoryOptionIos || (AudioSessionCategoryOptionIos = {})); export let AudioSessionModeIos; (function (AudioSessionModeIos) { AudioSessionModeIos["Default"] = "Default"; AudioSessionModeIos["VoiceChat"] = "VoiceChat"; AudioSessionModeIos["VideoChat"] = "VideoChat"; AudioSessionModeIos["GameChat"] = "GameChat"; AudioSessionModeIos["VideoRecording"] = "VideoRecording"; AudioSessionModeIos["Measurement"] = "Measurement"; AudioSessionModeIos["MoviePlayback"] = "MoviePlayback"; AudioSessionModeIos["SpokenAudio"] = "SpokenAudio"; })(AudioSessionModeIos || (AudioSessionModeIos = {})); const checkPlatform = () => { if (Platform.OS !== 'ios') throw new Error('Only supported on iOS'); }; /** * AudioSession Utility, iOS only. */ export default { Category: AudioSessionCategoryIos, CategoryOption: AudioSessionCategoryOptionIos, Mode: AudioSessionModeIos, getCurrentCategory: async () => { var _result$options; checkPlatform(); const result = await RNWhisper.getAudioSessionCurrentCategory(); return { category: result.category.replace('AVAudioSessionCategory', ''), options: (_result$options = result.options) === null || _result$options === void 0 ? void 0 : _result$options.map(option => option.replace('AVAudioSessionCategoryOption', '')) }; }, getCurrentMode: async () => { checkPlatform(); const mode = await RNWhisper.getAudioSessionCurrentMode(); return mode.replace('AVAudioSessionMode', ''); }, setCategory: async (category, options) => { checkPlatform(); await RNWhisper.setAudioSessionCategory(category, options); }, setMode: async mode => { checkPlatform(); await RNWhisper.setAudioSessionMode(mode); }, setActive: async active => { checkPlatform(); await RNWhisper.setAudioSessionActive(active); } }; //# sourceMappingURL=AudioSessionIos.js.map