/* * Copyright (c) 2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { SettingPage } from '../../pages/SettingPage'; export const STR_LOCK_VIDEO: string = '.私密音频'; export const STR_FAC_VIDEO: string = '.我的收藏'; export const STR_HISTORY_MUSIC: string = '.最近播放'; export const VIP_FILEPATH: string = '.vv' /** * Common constants for all features. */ export class CommonConstants { static readonly DEFAULT_THEME_COLOR: string = SettingPage.THEME_COLOR_LIST[0].color static readonly OPEN_DATE: string = '2025-06-10'; static readonly ICP_NO: string = '闽ICP备18015191号-16A'; static readonly ICP_URL: string = 'https://beian.miit.gov.cn/'; static readonly CONTACT_MAIL: string = 'setup1115@foxmail.com'; static readonly NEW_DUTY: string = "http://xgplayer.com/yszc/ttmusic/duty.html"; //huawei的隐私政策 static readonly NEW_YS_HW: string = "http://xgplayer.com/yszc/ttmusic/yszc.html"; static readonly NEW_FIRST: string = "http://xgplayer.com/yszc/ttmusic/first.html"; //会员协议 static readonly NEW_MEMBER_AGREEMENTS: string="http://xgplayer.com/yszc/ttmusic/member.html"; static readonly LRC_API: string = 'https://lrc.ss5.xyz/jsonapi';//https://lrc.ss5.xyz/jsonapi?title=%E7%A8%BB%E9%A6%99&artist=%E5%91%A8%E6%9D%B0%E4%BC%A6 static readonly LRC_API_2: string = 'https://api.lrc.cx/lyrics' static readonly COVER_API: string = 'https://lrc.ss5.xyz/cover'//https://lrc.ss5.xyz/cover?title=%E5%B1%B1%E6%B0%B4%E4%B9%8B%E9%97%B4&artist=%E8%AE%B8%E5%B5%A9 static readonly COVER_API2: string = 'https://api.lrc.cx/cover' static readonly PLAY_STORE:string = 'playAppStore' static readonly VIDEO_LIST: string = 'my_video_list';//本地视频 static readonly FAV_VIDEO_LIST: string = 'fav_video_list';//收藏的视频 static readonly PRIVATE_VIDEO_LIST: string = 'private_video_list';//私密的视频 static readonly MUSIC_LIST: string = 'my_music_list';//本地音乐 static readonly TAG: string = '[UserAuth]'; static readonly MILLISECONDS_TO_SECONDS: number = 1; static readonly QQ_GROUP: string= "685109858"; // 替换为实际群号 static readonly BREAKPOINT_TYPES: string[] = ['xs', 'sm', 'md', 'lg', 'xl']; static readonly VIDEO_FORMAT = ['.mp4','.mov','.m4v','.avi','.3gv','.wmv', '.mkv','.flv','.3g2','.rmvb','.mpg','.webm','.ogv','.f4v','.swf','.srt', '.vtt','.vob','.3gp','.mpeg','.ts', '.asf','.m2ts','.m4b','.mts','.rm','.wtv' ] static readonly MEDIA_FORMAT = ['.mp3','.wav','.wma','.mp2','.mov','.flac', '.midi','.ra','.aac','.ape','.cda','.lrc','.alac','.m4a','.mp4','.wmv','.mkv', '.3gv','.m4v','.avi','.rmvb','.flv','.3g2','.rmvb','.mpg','.webm','.ogv','.f4v','.swf' ,'.srt','.dsf','.vob','.3gp','.mpeg','.ts','.ogg','.opus','.wv','.aiff','.amr','.aif','.dff' ,'.aif','.au','.eac3','.mlp','.tak','.thd','.tta','.wv','.ac3','.amr','.mka','.mpc','.ra','.dts' , '.asf','.m2ts','.m4b','.mts','.rm','.wtv','.av3a','.dsd','.cue'] static readonly REAL_MUSIC_FORMAT = ['.mp3','.mp3','.wma','.mp2','.mov','.flac', '.midi','.ra','.aac','.ape','.cda','.lrc','.alac','.m4a','.ogg','.opus','.wv','.aiff','.amr','.aif','.dff' ,'.aif','.au','.eac3','.mlp','.tak','.thd','.tta','.wv','.ac3','.amr','.mka','.mpc','.ra', '.asf','.m2ts','.m4b','.mts','.rm','.wtv','.dts','.av3a','.dsd','.dsf','.wav'] // 图片帧信息常量 static readonly IMAGE_FRAME_INFO: ImageFrameInfo[] = [ { src: $r("app.media.app_loading0") }, { src: $r("app.media.app_loading1") }, { src: $r("app.media.app_loading2") }, { src: $r("app.media.app_loading3") }, ]; // 倍数格式支持列表 public static video_speed_list: number[] = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 3] static readonly SORT_ARRAY = ["按艺术家升序", "按艺术家降序", "按专辑升序", "按专辑降序", "按名称升序", "按名称降序", "按添加时间升序", "按添加时间降序"] static readonly PIP_LYRIC_BG = ["音乐封面", "自定义"] static readonly TWO_FINGER_TYPE = ["小", "中", "大"] static readonly DEFAULT_LAYOUT = [ "瀑布流模式","列表模式","网格模式"] static readonly DEFAULT_HOME_TYPE = [ "本地音乐","媒体库","网盘" ,"艺术家","专辑"] //德本的接口调用微信支付下单接口返回的支付交易会话ID,该值有效期为2小时。 static readonly WX_PAY_API: string = "https://pay.ss5.xyz/wechat/prepay" //微信支付商务号 剑虾 static readonly WX_PAY_MCHID: string = "1557416681" //微信支付应用的id static readonly WX_PAY_APPID: string = "wx263d1c80d204c3c0" // static readonly OUT_TRADE_NO_PRE: string = "TTJT" //微信支付的证书序列号id,在账户中心,API安全 static readonly WX_PAY_SERIALNO: string = "60A30CD8E9591C492497DF601456767AE4E09065" static readonly WX_PAY_RSA_PRIVATE_KEY: string ="-----BEGIN PRIVATE KEY-----\n" + "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDHS33UIr8lX/Go\n" + "TI2YR2+5ogKwme3LiiUFCL/Q2RrUoo6bYnqRHZsoGS383+/2KSv6Lw1UItGcb0MQ\n" + "inlJ1MLFZaAaEBXZiOxzIzs6pTwW1NggF9VRJdm/vMMlDVFJBRvrQ2GjFooMD2V+\n" + "dsXPWfPIzQnTN2HzmjJkKrvJh0uzy9Ydf0Fdn+91QpQCzVigjGBO/wN0pDFjc8JU\n" + "FNBaT+Ls3kEC4DjKSF15dY82bYmee7HOGt9NfDX6LKOWsoySRMTpUOV8cm/lA7b3\n" + "E9ASRfByndrfn9Qi6CtE/8P5y+WorU5neeonFdUEiSY5bOjGE+XtLS09uozH6vvu\n" + "HYm/A9gLAgMBAAECggEBAJ2eXw3/zR1KHF327aWaGgq+z1HM6/0mbNDmco5Cpq21\n" + "QwQxhq5us9+qymxM0APn3BgqTmhUgWMvu+LBIdv6oXBtR4pVXnKFkDwfiSCAvl1w\n" + "SN5Y+yUKwoSaTdxoA/m0SLhwui+6C8QuCR9T4G51vhD52ONr0dRQB7qg8ZQZpQ20\n" + "qvmeBjeFuVc1I1gL0I1VestqhCWY5qQ4UBCkA1nRNFEoeuNI2dwzkkLh1O7kWar2\n" + "Fk8/80gvdXJO0bVtghKeYGyS77CojjJ8j350Uw3dO3hPSvKNo3nIGe0GkLdifZb+\n" + "43evNH5eWohXl8njU1FJQa//AlfeIHi62bIv8LjdFkECgYEA7onm0D0/Nr/Ankci\n" + "WEAy5R9bn+1osNIqH8OB4JK2K+Ev+T4bGY4NWCo4xm/03LYNwQbNlZoJ2xmiaAQW\n" + "cGBaH2tuPMnPTZztdnwB4s1vMQt4cRBUmTuZ0W6Nx5ZrXNnay4uBytCGBYiUeyYc\n" + "4s4KB+5ZH31mR3KcVr78uyZL+48CgYEA1eIuMbitm67CMboDOrr1/RkXCxlnJHBr\n" + "KObZP68ozFTBOeu17IQdtdGHWEe/y3RN2a1PuaN4X19urD2fbn+YciaWECmloPt/\n" + "nw7n9RTemqEOt5msPhFAG7L199Cc2Fa47z+bISDPnkxBAVzomA//+XNEfnw/ScOm\n" + "CM8lD1prDcUCgYEAwqd12uif9SV1IbQaqrl4ztBQDKnHjMNz7Ie2LHSMhDI228V6\n" + "h9gLu654tjYWMyW9A49xpGsXL9wzU35CcWGvKYSZaLGmoUc14EJBp7rMydD6cAlL\n" + "f9/LHcSBniV5Z0O/7+nf+IlBVLKnt/baC5rnRKGTyMaj+BnmykMAKhiOWLECgYAm\n" + "7ydtkaq4vlVHbA8Ob947loelU5h8/6HiLjO57g7FM2CBRLE3Ps2RvXSf01/Mj31k\n" + "dLIgnutYoSyqWgVdvghoLzH9+zbVWTLgJ3x+FrB3AX6GWYkLO2SqJie0VttWXmMH\n" + "2lJI84oXzNXAg8Mrey4joKIFTGTQ7raYv+yFIPZ/6QKBgQCXomlpUQgCgZLpNItN\n" + "yNTRfpsufSshemEsaLjmCsHhzdrGeB3O11ZhbyoAtpGEcjGuNW9B1kIx42spLguC\n" + "BPCHoYG9RhXyxqDIdbqXtpgyChOnS4/kzB2e6JqzbR73qJ/TooYVibSwBzH4L1hs\n" + "4SETSa+uZyZsJuC3mpra4uztgw==\n" + "-----END PRIVATE KEY-----" static readonly LYRIC_FORMAT = ['.lrc']//歌词格式 static readonly VIDEO_SRT_FORMAT = ['.srt']//视频字幕格式 static readonly TYPE_IS_CSJAD: number = 8888;//穿山甲广告 // static readonly pathDir:string = 'file://media//IMG_DATATIME_ID/' static readonly pathDir:string = 'file://docs/storage/Users/currentUser/' // static readonly musicBgList = [$r('app.media.ic_avatar10'), // $r('app.media.ic_avatar2'),$r('app.media.avatar'), // $r('app.media.ic_avatar4'),$r('app.media.ic_avatar5'), // $r('app.media.ic_avatar8'),$r('app.media.ic_avatar1'), // $r('app.media.ic_avatar8'),$r('app.media.ic_avatar9'),$r('app.media.ic_avatar10') // ] /** * Full percent. */ static readonly FULL_PERCENT: string = '100%'; /** * Ninety percent. */ static readonly NINETY_PERCENT: string = '80%'; /** * Fifty percent. */ static readonly FIFTY_PERCENT: string = '50%'; /** * Playback page path. */ static readonly PAGE: string = 'pages/PlayPage'; static readonly MUSIC_PAGE: string = 'pages/MSPlayPage'; static readonly TYPE_IS_DIR: number = 999;//文件夹 static readonly TYPE_IS_ARTIST: number = 998;//艺术家 static readonly TYPE_IS_ALBUM: number = 997;//艺术家 /** * Local video ID. */ static readonly TYPE_LOCAL: number = 0;//本地视频 /** * Network video ID. */ static readonly TYPE_INTERNET: number = 1;//网络视频 static readonly TYPE_WEBDAV: number = 3;//webdav文件 static readonly TYPE_SMB: number = 4;//SMB文件 static readonly TYPE_NAVIDROME: number = 5;//Navidrome流媒体文件 static readonly TYPE_FTP: number = 6;//FTP文件 static readonly TYPE_BAIDU: number = 7;//百度网盘文件 static readonly TYPE_JELLYFIN: number = 8;//Jellyfin流媒体文件 static readonly TYPE_EMBY: number = 9;//Emby流媒体文件 static readonly TYPE_AUDIOSTATION: number = 10;//AudioStation流媒体文件 static readonly TYPE_PLEX: number = 11;//Plex流媒体文件 static readonly TYPE_LOCK: number = 200;//私密视频 static readonly TYPE_LIKE: number = 201;//我收藏的视频 /** * Network video ID. */ static readonly TYPE_VIDEO_FAV: number = 2;//我的收藏 /** * Start playing. */ static readonly STATUS_START: number = 1; /** * Playing Pause. */ static readonly STATUS_PAUSE: number = 2; /** * Stop Playing. */ static readonly STATUS_STOP: number = 3; /** * Width-height ratio. */ static readonly ASPECT_RATIO: number = 1; /** * One hundred. */ static readonly ONE_HUNDRED: number = 100; /** * A thousand. */ static readonly A_THOUSAND: number = 1000; /** * time system, Hour-minute-second conversion. */ static readonly TIME_UNIT: number = 60; /** * Initial Time UNIT. */ static readonly INITIAL_TIME_UNIT: string = '00'; /** * Zero padding, 2 bits. */ static readonly PADDING_LENGTH: number = 2; /** * String zero padding. */ static readonly PADDING_STR: string = '0'; /** * Breath screen status. */ static readonly SCREEN_OFF: string = 'usual.event.SCREEN_OFF'; /** * Operation status of video player 4. */ static readonly OPERATE_STATE: Array = ['prepared', 'playing', 'paused', 'completed']; } /** * Player component status. */ export enum AvplayerStatus { IDLE = 'idle', INITIALIZED = 'initialized', PREPARED = 'prepared', PLAYING = 'playing', PAUSED = 'paused', COMPLETED = 'completed', STOPPED = 'stopped', RELEASED = 'released', ERROR = 'error' } /** * AVPlayer binding event. */ export enum Events { STATE_CHANGE = 'stateChange', TIME_UPDATE = 'timeUpdate', ERROR = 'error' } /** * Slider mode. */ export enum SliderMode { MOVING = 1, END = 2, CLICK = 3 }