whisper.rn
Version:
React Native binding of whisper.cpp
83 lines (79 loc) • 3.37 kB
JavaScript
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