1bf6e62f2S猫头猫import MusicQueue from '@/common/musicQueue'; 2bf6e62f2S猫头猫import MusicSheet from '@/common/musicSheet'; 3bf6e62f2S猫头猫import {check, PERMISSIONS, request} from 'react-native-permissions'; 4bf6e62f2S猫头猫import TrackPlayer, { Capability } from 'react-native-track-player'; 5bf6e62f2S猫头猫import {pluginManager} from '../common/pluginManager'; 6bf6e62f2S猫头猫import 'react-native-get-random-values'; 7bf6e62f2S猫头猫import {ToastAndroid} from 'react-native'; 8bf6e62f2S猫头猫import { loadConfig } from '@/common/localConfigManager'; 9*d84e0f28S猫头猫import RNBootSplash from "react-native-bootsplash"; 10bf6e62f2S猫头猫 11bf6e62f2S猫头猫/** app加载前执行 */ 12bf6e62f2S猫头猫export default async function () { 13bf6e62f2S猫头猫 // 检查权限 14bf6e62f2S猫头猫 const [readStoragePermission, writeStoragePermission] = await Promise.all([ 15bf6e62f2S猫头猫 check(PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE), 16bf6e62f2S猫头猫 check(PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE), 17bf6e62f2S猫头猫 ]); 18bf6e62f2S猫头猫 if ( 19bf6e62f2S猫头猫 !( 20bf6e62f2S猫头猫 readStoragePermission === 'granted' && 21bf6e62f2S猫头猫 writeStoragePermission === 'granted' 22bf6e62f2S猫头猫 ) 23bf6e62f2S猫头猫 ) { 24bf6e62f2S猫头猫 await request(PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE); 25bf6e62f2S猫头猫 await request(PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE); 26bf6e62f2S猫头猫 } 27bf6e62f2S猫头猫 28bf6e62f2S猫头猫 // 加载配置 29bf6e62f2S猫头猫 await loadConfig(); 30bf6e62f2S猫头猫 // 加载插件 31bf6e62f2S猫头猫 32bf6e62f2S猫头猫 Promise.all([ 33bf6e62f2S猫头猫 await pluginManager.initPlugins(), 34bf6e62f2S猫头猫 await TrackPlayer.setupPlayer(), 35bf6e62f2S猫头猫 await TrackPlayer.updateOptions({ 36bf6e62f2S猫头猫 stopWithApp: false, 37bf6e62f2S猫头猫 alwaysPauseOnInterruption: true, 38bf6e62f2S猫头猫 capabilities: [ 39bf6e62f2S猫头猫 Capability.Play, 40bf6e62f2S猫头猫 Capability.Pause, 41bf6e62f2S猫头猫 Capability.SkipToNext, 42bf6e62f2S猫头猫 Capability.SkipToPrevious, 43bf6e62f2S猫头猫 ], 44bf6e62f2S猫头猫 compactCapabilities: [ 45bf6e62f2S猫头猫 Capability.Play, 46bf6e62f2S猫头猫 Capability.Pause, 47bf6e62f2S猫头猫 Capability.SkipToNext, 48bf6e62f2S猫头猫 Capability.SkipToPrevious, 49bf6e62f2S猫头猫 ], 50bf6e62f2S猫头猫 notificationCapabilities: [ 51bf6e62f2S猫头猫 Capability.Play, 52bf6e62f2S猫头猫 Capability.Pause, 53bf6e62f2S猫头猫 Capability.SkipToNext, 54bf6e62f2S猫头猫 Capability.SkipToPrevious, 55bf6e62f2S猫头猫 ] 56bf6e62f2S猫头猫 }) 57bf6e62f2S猫头猫 ]); 58bf6e62f2S猫头猫 // musicController.initMusicControl(); 59bf6e62f2S猫头猫 await MusicQueue.setupMusicQueue(); 60bf6e62f2S猫头猫 await MusicSheet.initMusicSheet(); 61bf6e62f2S猫头猫 62bf6e62f2S猫头猫 ErrorUtils.setGlobalHandler(error => ToastAndroid.show(`error: ${error?.message}`, ToastAndroid.LONG)); 63*d84e0f28S猫头猫 RNBootSplash.hide({fade: true}); 64bf6e62f2S猫头猫 // 隐藏开屏动画 65bf6e62f2S猫头猫} 66