@mustafakarali/react-native-audio-stream
Version:
React Native Audio Stream - High-performance audio streaming for React Native
95 lines • 3.98 kB
TypeScript
import { IAudioStream, AudioStreamConfig, AudioStreamCallbacks, PlaybackState, PlaybackStats, AudioMetadata, EqualizerBand, EqualizerPreset, AudioDeviceInfo } from './types';
export declare class AudioStream implements IAudioStream {
private static instance;
private eventEmitter;
private eventListeners;
private nativeEventSubscriptions;
private config;
private currentUrl;
private isInitialized;
private constructor();
static getInstance(): AudioStream;
private setupNativeEventListeners;
initialize(config?: AudioStreamConfig): Promise<void>;
destroy(): Promise<void>;
startStream(url: string, config?: AudioStreamConfig): Promise<void>;
stopStream(): Promise<void>;
play(): Promise<void>;
pause(): Promise<void>;
stop(): Promise<void>;
cancelStream(): Promise<void>;
seek(position: number): Promise<void>;
setVolume(volume: number): Promise<void>;
getVolume(): Promise<number>;
setPlaybackRate(rate: number): Promise<void>;
getPlaybackRate(): Promise<number>;
getState(): Promise<PlaybackState>;
getCurrentTime(): Promise<number>;
getDuration(): Promise<number>;
getBufferedPercentage(): Promise<number>;
getStats(): Promise<PlaybackStats>;
getMetadata(): Promise<AudioMetadata | null>;
setEqualizer(bands: EqualizerBand[]): Promise<void>;
getEqualizer(): Promise<EqualizerBand[]>;
applyEqualizerPreset(preset: EqualizerPreset | number): Promise<void>;
getEqualizerPresets(): Promise<EqualizerPreset[]>;
addEventListener<K extends keyof AudioStreamCallbacks>(event: K, callback: AudioStreamCallbacks[K]): void;
removeEventListener<K extends keyof AudioStreamCallbacks>(event: K, callback: AudioStreamCallbacks[K]): void;
removeAllEventListeners(): void;
clearCache(): Promise<void>;
getCacheSize(): Promise<number>;
preloadStream(url: string, duration?: number): Promise<void>;
setNetworkPriority(priority: 'low' | 'normal' | 'high'): Promise<void>;
requestAudioFocus(): Promise<boolean>;
abandonAudioFocus(): Promise<void>;
setAudioSessionCategory(category: string): Promise<void>;
showInputPicker(): Promise<void>;
getAvailableInputs(): Promise<AudioDeviceInfo[]>;
enableEnhancedBuffering(enable: boolean): Promise<void>;
enableSpatialAudio(enable: boolean): Promise<void>;
useQueuePlayer(enable: boolean): Promise<void>;
createRoutePickerView(): Promise<number>;
playFromData(base64Data: string, config?: AudioStreamConfig): Promise<void>;
appendToBuffer(base64Data: string): Promise<void>;
startRealtimeStream(config?: AudioStreamConfig): Promise<void>;
appendRealtimeData(base64Data: string): Promise<void>;
completeRealtimeStream(): Promise<void>;
getStreamingStats(): Promise<{
bytesWritten: number;
bytesRead: number;
isActive: boolean;
isReady: boolean;
}>;
private ensureInitialized;
private createError;
/**
* Start memory-based streaming (Android only)
* @platform android
*/
static startMemoryStream(config?: AudioStreamConfig): Promise<boolean>;
/**
* Append audio chunk to memory stream (Android only)
* @platform android
*/
static appendToMemoryStream(base64Data: string): Promise<boolean>;
/**
* Complete memory stream (Android only)
* @platform android
*/
static completeMemoryStream(): Promise<boolean>;
/**
* Stream audio from URL with optimal settings
* Automatically handles Android/iOS differences
*/
static streamFromURL(url: string, onChunk?: (chunk: Uint8Array) => void): Promise<void>;
/**
* Simple Text-to-Speech streaming with ElevenLabs
*/
static streamTTS(text: string, config: {
apiKey: string;
voiceId: string;
model?: string;
onProgress?: (status: string) => void;
}): Promise<void>;
}
//# sourceMappingURL=AudioStream.d.ts.map