expo-dlna-player
Version:
A React Native/Expo module for DLNA/AirPlay media casting to smart TVs and streaming devices
141 lines • 4.31 kB
TypeScript
import { DeviceInfo, PlaybackStatus } from './ExpoDlnaPlayer.types';
export * from './ExpoDlnaPlayer.types';
/**
* 检查设备是否已连接
* @returns {boolean} 是否已连接到设备
*/
export declare function useDeviceConnectivity(): boolean;
/**
* 开始搜索可用的DLNA设备
*/
export declare function startDiscovery(): Promise<void>;
/**
* 停止设备搜索
*/
export declare function stopDiscovery(): Promise<void>;
/**
* 获取已发现的设备列表
* @returns 设备信息数组
*/
export declare function getDevices(): Promise<any[]>;
/**
* 连接到DLNA/AirPlay设备
* @param deviceId 设备ID
* @returns 是否连接成功
*/
export declare function connectToDevice(deviceId: string): Promise<boolean>;
/**
* 断开当前连接的设备
*/
export declare function disconnectFromDevice(): Promise<void>;
/**
* 检查是否已连接到设备
* @returns 是否已连接
*/
export declare function isConnected(): Promise<boolean>;
/**
* 获取当前连接的设备信息
* @returns 设备信息,如果未连接则返回null
*/
export declare function getConnectedDevice(): Promise<any | null>;
/**
* 播放媒体
* @param url 媒体URL
* @param title 媒体标题
* @param mimeType 媒体类型
*/
export declare function play(url: string, title?: string, mimeType?: string): Promise<void>;
/**
* 暂停当前播放
*/
export declare function pause(): Promise<void>;
/**
* 恢复播放
*/
export declare function resume(): Promise<void>;
/**
* 停止播放
*/
export declare function stop(): Promise<void>;
/**
* 跳转到指定位置
* @param position 位置(秒)
*/
export declare function seek(position: number): Promise<void>;
/**
* 设置音量
* @param volume 音量(0-100)
*/
export declare function setVolume(volume: number): Promise<void>;
/**
* 获取播放状态
* @returns 播放状态对象
*/
export declare function getPlaybackStatus(): Promise<any>;
/**
* 设置播放速率
* @param rate 播放速率(0.5-2.0之间)
*/
export declare function setPlaybackRate(rate: number): Promise<void>;
/**
* 设置静音状态
* @param muted 是否静音
*/
export declare function setMuted(muted: boolean): Promise<void>;
/**
* 获取媒体缓冲状态
* @returns 返回包含缓冲状态的对象
*/
export declare function getBufferingStatus(): Promise<object | null>;
/**
* 检查当前设备是否支持Miracast投屏功能(仅Android可用)
* @returns 是否支持Miracast
*/
export declare function isProjectionSupported(): Promise<boolean>;
/**
* 开始Miracast投屏(仅Android可用)
* @param deviceId 设备ID
* @param mode 投屏模式,可选值: "SCREEN_MIRRORING"(默认) 或 "VIDEO_ONLY"
* @returns 是否成功启动投屏
*/
export declare function startProjection(deviceId: string, mode?: string): Promise<boolean>;
/**
* 停止Miracast投屏(仅Android可用)
*/
export declare function stopProjection(): Promise<boolean>;
export declare const ExpoDlnaPlayer: {
startDiscovery: () => Promise<void>;
stopDiscovery: () => Promise<void>;
getDevices: () => Promise<DeviceInfo[]>;
connectToDevice: (deviceId: string) => Promise<boolean>;
disconnectFromDevice: () => Promise<void>;
isConnected: () => Promise<boolean>;
getConnectedDevice: () => Promise<DeviceInfo | null>;
play: (url: string, title?: string, mimeType?: string) => Promise<void>;
pause: () => Promise<void>;
resume: () => Promise<void>;
stop: () => Promise<void>;
seek: (position: number) => Promise<void>;
setVolume: (volume: number) => Promise<void>;
setRate: ((rate: number) => Promise<void>) | undefined;
setMuted: ((muted: boolean) => Promise<void>) | undefined;
getPlaybackStatus: () => Promise<PlaybackStatus>;
getBufferingStatus: () => Promise<object>;
addPlaybackStatusListener: (listener: (status: PlaybackStatus) => void) => {
remove: () => void;
};
addConnectionListener: (listener: (event: {
deviceId: string;
connected: boolean;
}) => void) => {
remove: () => void;
};
addErrorListener: (listener: (error: {
code: string;
message: string;
}) => void) => {
remove: () => void;
};
};
export default ExpoDlnaPlayer;
//# sourceMappingURL=index.d.ts.map