desktop-audio-proxy
Version:
A comprehensive audio streaming solution for Tauri and Electron apps that bypasses CORS and WebKit codec issues
83 lines • 2.45 kB
TypeScript
import { AudioProxyClient } from './index';
import { AudioProxyOptions, StreamInfo, Environment } from './types';
/**
* Hook for managing audio proxy client with automatic URL processing
*/
export declare function useAudioProxy(url: string | null, options?: AudioProxyOptions): {
audioUrl: string | null;
isLoading: boolean;
error: string | null;
streamInfo: StreamInfo | null;
retry: () => void;
client: AudioProxyClient;
};
/**
* Hook for accessing audio capabilities and system information
*/
export declare function useAudioCapabilities(): {
capabilities: {
supportedFormats: string[];
missingCodecs: string[];
capabilities: Record<string, string>;
environment: Environment;
electronVersion?: string;
chromiumVersion?: string;
} | null;
devices: {
inputDevices: Array<{
id: string;
name: string;
}>;
outputDevices: Array<{
id: string;
name: string;
}>;
} | null;
systemSettings: {
defaultInputDevice?: string;
defaultOutputDevice?: string;
masterVolume?: number;
} | null;
isLoading: boolean;
error: string | null;
refresh: () => Promise<void>;
};
/**
* Hook for checking proxy server availability
*/
export declare function useProxyStatus(options?: AudioProxyOptions): {
isAvailable: boolean | null;
isChecking: boolean;
error: string | null;
proxyUrl: string;
refresh: () => Promise<void>;
};
/**
* Hook for audio metadata extraction (Tauri/Electron only)
*/
export declare function useAudioMetadata(filePath: string | null): {
metadata: {
duration?: number;
bitrate?: number;
sampleRate?: number;
channels?: number;
format?: string;
} | null;
isLoading: boolean;
error: string | null;
};
/**
* Context provider for global audio proxy configuration
*/
import { ReactNode } from 'react';
interface AudioProxyContextValue {
defaultOptions: AudioProxyOptions;
client: AudioProxyClient;
}
export declare function AudioProxyProvider({ children, options, }: {
children: ReactNode;
options?: AudioProxyOptions;
}): import("react").FunctionComponentElement<import("react").ProviderProps<AudioProxyContextValue | null>>;
export declare function useAudioProxyContext(): AudioProxyContextValue;
export {};
//# sourceMappingURL=react.d.ts.map