1*ed3e0db2S猫头猫import Config from '@/core/config'; 2*ed3e0db2S猫头猫import Toast from '@/utils/toast'; 3689db039S猫头猫import {NativeModule, NativeModules} from 'react-native'; 4689db039S猫头猫 557277364S猫头猫export enum NativeTextAlignment { 657277364S猫头猫 // 左对齐 757277364S猫头猫 LEFT = 3, 857277364S猫头猫 // 右对齐 957277364S猫头猫 RIGHT = 5, 1057277364S猫头猫 // 居中 1157277364S猫头猫 CENTER = 17, 1257277364S猫头猫} 1357277364S猫头猫 14689db039S猫头猫// 状态栏歌词的工具 15689db039S猫头猫interface ILyricUtil extends NativeModule { 16689db039S猫头猫 /** 显示状态栏歌词 */ 170be848bcS猫头猫 showStatusBarLyric: ( 180be848bcS猫头猫 initLyric?: string, 190be848bcS猫头猫 config?: Record<string, any>, 200be848bcS猫头猫 ) => Promise<void>; 21689db039S猫头猫 /** 隐藏状态栏歌词 */ 22689db039S猫头猫 hideStatusBarLyric: () => Promise<void>; 2357277364S猫头猫 /** 设置歌词文本 */ 2457277364S猫头猫 setStatusBarLyricText: (lyric: string) => Promise<void>; 2557277364S猫头猫 /** 设置距离顶部的距离 */ 2657277364S猫头猫 setStatusBarLyricTop: (percent: number) => Promise<void>; 2757277364S猫头猫 /** 设置距离左部的距离 */ 2857277364S猫头猫 setStatusBarLyricLeft: (percent: number) => Promise<void>; 2957277364S猫头猫 /** 设置宽度 */ 3057277364S猫头猫 setStatusBarLyricWidth: (percent: number) => Promise<void>; 3157277364S猫头猫 /** 设置字体 */ 3257277364S猫头猫 setStatusBarLyricFontSize: (fontSize: number) => Promise<void>; 3357277364S猫头猫 /** 设置对齐 */ 3457277364S猫头猫 setStatusBarLyricAlign: (alignment: NativeTextAlignment) => Promise<void>; 3557277364S猫头猫 /** 设置颜色 */ 3657277364S猫头猫 setStatusBarColors: ( 3757277364S猫头猫 textColor: string | null, 3857277364S猫头猫 backgroundColor: string | null, 3957277364S猫头猫 ) => Promise<void>; 40689db039S猫头猫} 41689db039S猫头猫 42689db039S猫头猫const LyricUtil: ILyricUtil = NativeModules.LyricUtil; 43689db039S猫头猫 44*ed3e0db2S猫头猫const originalShowStatusBarLyric = LyricUtil.showStatusBarLyric; 45*ed3e0db2S猫头猫 46*ed3e0db2S猫头猫const showStatusBarLyric: ILyricUtil['showStatusBarLyric'] = async ( 47*ed3e0db2S猫头猫 initLyric, 48*ed3e0db2S猫头猫 config, 49*ed3e0db2S猫头猫) => { 50*ed3e0db2S猫头猫 try { 51*ed3e0db2S猫头猫 const val = await originalShowStatusBarLyric(initLyric, config); 52*ed3e0db2S猫头猫 console.log(val); 53*ed3e0db2S猫头猫 } catch (e) { 54*ed3e0db2S猫头猫 Toast.warn('状态栏歌词开启失败,请到手机系统设置打开悬浮窗权限'); 55*ed3e0db2S猫头猫 Config.set('setting.lyric.showStatusBarLyric', false); 56*ed3e0db2S猫头猫 } 57*ed3e0db2S猫头猫}; 58*ed3e0db2S猫头猫 59*ed3e0db2S猫头猫LyricUtil.showStatusBarLyric = showStatusBarLyric; 60*ed3e0db2S猫头猫 61689db039S猫头猫export default LyricUtil; 62