在 NativeScript + Vue 中读取 ID3 标签

reading ID3 tag in NativeScript + Vue

我正在尝试读取我项目中 mp3 文件的 id3 标签,但似乎所有节点插件都依赖于 fs, 因为我得到这个错误:TypeError: fs.exists is not a function

所以如何在 NativeScript 中读取 id3 标签?

你可以试试nativescript-nodeify, but I remember having problem afterwards with with bundling

此外,我在 NativeScript 4 中使用了它。我不知道它是否仍然适用于 NS 6。

{N} !== Node,您必须以原生 iOS / Android 方式获取元数据。使用 nativescript-media-metadata-retriever 插件。

tns plugin add nativescript-media-metadata-retriever

我分享这个模块的用法是为了像我这样的菜鸟,他们可能会因为一个误解而浪费他们的时间:))

要求:

import { MediaMetadataRetriever } from "nativescript-media-metadata-retriever";
const imageSourceModule = require( "tns-core-modules/image-source" ); 
const fs = require("tns-core-modules/file-system");

和代码:

// ------- init MediaMetadataRetriever         
let mmr = new MediaMetadataRetriever();
mmr.setDataSource( newValue );
mmr.getEmbeddedPicture()
.then( ( args ) => {

    // ------- show the albumArt on bgIMG
    var albumArt = this.$refs.bgIMG.nativeView; 
    var img = new imageSourceModule.ImageSource();
    // ------- setNativeSource is a **Methods** of imageSourceModule
    img.setNativeSource( args );
    albumArt.set( "src" , img );
    console.log("ImageSource set...");

    // ------- save the albumArt in root of SDCARD
    // ------- fromNativeSource is a **Function** of imageSourceModule
    let imageSource = imageSourceModule.fromNativeSource( args );
    console.log("Here");
    let fileName = "test.png";
    const root = android.os.Environment.getExternalStorageDirectory().getAbsolutePath().toString();
    let path = fs.path.join( root , fileName);
    let saved = imageSource.saveToFile(path, "png");
    if (saved) {
        console.log("Image saved successfully!");
    }

} );