|
@@ -671,6 +671,20 @@ export class Utility {
|
|
|
static async uriGetMusicAssetsFromFile(context:Context,uri:string,type:number
|
|
static async uriGetMusicAssetsFromFile(context:Context,uri:string,type:number
|
|
|
,autoParseMusicName?:boolean,originFileName?:string): Promise<VideoItem> {
|
|
,autoParseMusicName?:boolean,originFileName?:string): Promise<VideoItem> {
|
|
|
await ReqPermissionUtil.persistPermission(uri);
|
|
await ReqPermissionUtil.persistPermission(uri);
|
|
|
|
|
+ //这里加个判断,如果文件的大小是0K,这个文件是空的,直接返回
|
|
|
|
|
+ try {
|
|
|
|
|
+ const fileStat = await fs.stat(uri);
|
|
|
|
|
+ if (fileStat.size === 0) {
|
|
|
|
|
+ console.warn(`File ${uri} is empty (0KB). Returning default VideoItem.`);
|
|
|
|
|
+ // Return a default or empty VideoItem object
|
|
|
|
|
+ return new VideoItem(FileUtil.getFileName(uri), uri, uri, type, 0, '');
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error(`Failed to get stats for file ${uri}:`, error);
|
|
|
|
|
+ // If we can't read the file, still return a default item
|
|
|
|
|
+ return new VideoItem(FileUtil.getFileName(uri), uri, uri, type, 0, '');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
if(StrUtil.isNotEmpty(uri)&&uri.toLowerCase().endsWith('.cue')){
|
|
if(StrUtil.isNotEmpty(uri)&&uri.toLowerCase().endsWith('.cue')){
|
|
|
const cueItem = new VideoItem(FileUtil.getFileName(uri),uri,uri,type,0,'')
|
|
const cueItem = new VideoItem(FileUtil.getFileName(uri),uri,uri,type,0,'')
|
|
|
cueItem.fileName = FileUtil.getFileName(uri)
|
|
cueItem.fileName = FileUtil.getFileName(uri)
|