2013-02-19 27 views
2

是否可以編輯表示帶TagLib#的Mp3文件的ByteArray的標籤?來自ByteArray/Stream的TagLib-sharp文件

目前,我需要做的是這樣:

System.IO.File.WriteAllBytes(path + file + ".mp3", byt); 
TagLib.File f = TagLib.File.Create(path + song + ".mp3"); 

是否有可能避免這一點,並直接從ByteArray中創建TagLib.File?

+0

http://stackoverflow.com/questions/8106408/taglib-sharp-reading-metadata-from-httppostedfile-object – 2013-10-12 18:44:22

回答

1

試試這個:

var file = TagLib.File.Create(new FileBytesAbstraction(<file name>, <file bytes>)); 

其中FileBytesAbstraction是:

public class FileBytesAbstraction : TagLib.File.IFileAbstraction 
{ 
    public FileBytesAbstraction(string name, byte[] bytes) 
    { 
     Name = name; 

     var stream = new MemoryStream(bytes); 
     ReadStream = stream; 
     WriteStream = stream; 
    } 

    public void CloseStream(Stream stream) 
    { 
     stream.Dispose(); 
    } 

    public string Name { get; private set; } 

    public Stream ReadStream { get; private set; } 

    public Stream WriteStream { get; private set; } 
} 
+0

我正在尋找這方面的東西,這是我看到的最好的迴應。感謝這個例子。 – amelian 2017-03-17 08:25:35