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