react-native-youtube-bridge
Version:
🎥 Easy-to-use YouTube player for React Native with cross-platform support
46 lines • 2.11 kB
TypeScript
import type { EventCallback, YoutubePlayerEvents } from '@react-native-youtube-bridge/core';
import type YoutubePlayer from '../modules/YoutubePlayer';
/**
* @param player - The Youtube player instance.
* @param eventType - The type of event to subscribe to. `progress` event is not supported.
* @param defaultValue - The default value to return if the event is not triggered.
* @returns The event data.
* @example
* ```ts
* const player = useYouTubePlayer('AbZH7XWDW_k');
* const playbackRate = useYouTubeEvent(player, 'playbackRateChange', 1);
* ```
*/
declare function useYouTubeEvent<T extends Exclude<keyof YoutubePlayerEvents, 'progress'>>(player: YoutubePlayer, eventType: T, defaultValue?: YoutubePlayerEvents[T]): YoutubePlayerEvents[T] | null;
/**
* @param player - The Youtube player instance.
* @param eventType - The type of event to subscribe to.
* @param callback - The callback to call when the event is triggered.
* @param deps - The dependencies to watch for changes.
* @returns void
* @example
* ```ts
* const player = useYouTubePlayer('AbZH7XWDW_k');
* useYouTubeEvent(player, 'ready', (playerInfo) => {
* console.log('Player is ready!');
* console.log('rates', playerInfo.availablePlaybackRates);
* console.log('vol', playerInfo.volume);
* console.log('muted', playerInfo.muted);
* });
* ```
*/
declare function useYouTubeEvent<T extends keyof YoutubePlayerEvents>(player: YoutubePlayer, eventType: T, callback: EventCallback<YoutubePlayerEvents[T]>, deps?: React.DependencyList): void;
/**
* @param player - The Youtube player instance.
* @param eventType - `progress` event only.
* @param throttleMs - The throttle time in milliseconds (default 1000ms).
* @returns The event data.
* @example
* ```ts
* const player = useYouTubePlayer('AbZH7XWDW_k');
* const progress = useYouTubeEvent(player, 'progress', 1000);
* ```
*/
declare function useYouTubeEvent(player: YoutubePlayer, eventType: 'progress', throttleMs?: number): YoutubePlayerEvents['progress'] | null;
export default useYouTubeEvent;
//# sourceMappingURL=useYouTubeEvent.d.ts.map