我一直在为我的音乐经理项目寻找ID3编辑器.似乎taglib sharp是流行的选择.我google了很多,找不到任何使用它的例子.
有人能指出一些显示库使用情况的例子吗?
您好我想扫描音频 - 视频文件并使用php将其元数据存储在数据库中.我发现这个命令行包装器使用由banshee开发人员编译的TagLib.dll来完成这项工作.它工作正常但受实现的功能限制.我想通过PHP直接访问dll方法.
在PHP中,我们有一个函数(DOTNET),它允许我从.Net程序集中实例化一个类并调用它的方法并访问它的属性,如下所示:
/*$obj = new DOTNET("assembly", "classname");*/
$stack = new DOTNET("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Hello ");
echo $stack->Pop() . $stack->Pop();
//Returns string(10) "Hello .Net";
Run Code Online (Sandbox Code Playgroud)
我看到很多关于PHP-DLL-COM的问题,并且有一些建议:
regsvr32;;
;
DESCRIPTION "Simple COM object"
EXPORTS
DllGetClassObject PRIVATE
DllCanUnloadNow PRIVATE
DllRegisterServer PRIVATE
DllUnregisterServer PRIVATE
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何构建DLL并通过PHP使用其方法?
我的配置:
OS
Windows Server 2012 R2标准版i586
Apache:
Apache/2.2.21(Win32)DAV/2 PHP/5.4.42 mod_ssl/2.2.21 OpenSSL/0.9.8r
PHP
PHP版本:5.4.42
Arch:x86
编译器:MSVC9(Visual C++ 2008)
COM支持:启用
DCOM支持:禁用
.Net支持已启用
Microsoft …
我想将文本添加到自定义标签,添加到MP3文件.我试图做这样的,但我不能让标签更改.
这是我现在的代码:
TagLib.File f = TagLib.File.Create(@"C:\Users\spunit\Desktop\denna.mp3");
TagLib.Id3v2.Tag t = (TagLib.Id3v2.Tag)f.GetTag(TagTypes.Id3v2);
PrivateFrame p = PrivateFrame.Get(t, "albumtype", true);
p.PrivateData = System.Text.Encoding.Unicode.GetBytes("TAG CHANGED");
f.Tag.Album = "test";
f.Save();
Run Code Online (Sandbox Code Playgroud)
我更改了相册标签,但没有更改albumtype标签.我错过了什么吗?
我有许多从各种数码相机格式转码的MPEG-4文件,文件系统修改日期是正确的.我想设置"Media Created"标签以匹配.这可以在Windows资源管理器中通过"属性"窗口的"详细信息"选项卡手动完成.设置"已创建媒体"非常有用,因为Windows Live照片库会在此字段中键入其"采取日期"属性.不幸的是,文件数量使得手工设置所有日期变得不切实际.
一些自动化途径有潜力.TagLib#似乎支持所有MP4标签,但是获取更多基本标签的API尚不清楚.另一个角度是Windows shell.据推测,Windows资源管理器正在使用它来编写标签.有一个通过shell 读取的示例,但似乎没有用于编写的API.
我需要一些帮助来读/写音频/ vido文件的元数据信息.我搜索了很多,但没有发现任何有用的东西.Taglib sharp是一个开源库,提供读/写元数据的帮助.使用标签lib我可以编辑一些值但不是全部.
TagLib.File videoFile = TagLib.File.Create("test.mp4");
videoFile.Tag.Title = "Test";
videoFile.Tag.Comment = "Nothing";
Run Code Online (Sandbox Code Playgroud)
但我无法编辑以下属性,如作者网址,生产者等.我如何编辑这些属性?
我在这个库中遇到了很多麻烦(显然是因为我是新手).我正在使用Microsoft Visual Studio 2015.
首先,我完全不知道如何将这个库添加到我的项目中.我也没有在谷歌上找到任何有用的东西.
第二,我找到了两个不同的库 - taglib-sharp-master和taglib-sharp-2.1.0.0-windows.我应该使用哪一个?
用户将他们的MP3发布到我的网站,我想在文件存储到CDN之前从文件中读取元数据.TagLib-Sharp似乎是为此而去的库,但是我看不到任何打开HttPostedFile的方法,我不想将其保存到磁盘,并检索元数据.
任何人都有一个关于如何用taglib-sharp做到这一点的例子?
编辑:似乎IFileAbstraction可以解决这个问题.谁知道如何使用IFileAbstraction?
我正在尝试将新的艺术家和标题id3标签保存到曲目中.从轨道加载标签工作良好,也编辑轨道标题工作正常.但是当我尝试编辑表演者 (艺术家)时,它并没有改变任何东西.这是代码
public void renameID3(string artist,string title)
{
using (TagLib.File f = TagLib.File.Create(FInfo.FullName))
{
f.Tag.Artists[0] = artist; //Both of them are not ...
f.Tag.Performers[0] = artist; //working
f.Tag.Title = title; //This works fine
f.Save();
}
}
Run Code Online (Sandbox Code Playgroud)
另外,我查看了TagLib类的FirstPerformer和FirstPerformer成员的定义,但他们没有任何set方法.有谁知道如何解决这个问题?
我想在Windows窗体图片框中显示一首歌的专辑封面(通过taglib-sharp库访问).我遇到的问题是taglib-library返回一个类型的图像,TagLib.IPicture而图片框需要一个类型的对象System.Drawing.Image.
我现在已经在互联网上搜索了好几个小时,寻找一种方法,从一个转换IPicture为Image,但无济于事.我最好的领导是:http://msdn.microsoft.com/en-us/library/system.windows.forms.axhost.getpicturefromipicture.aspx,但我还没有看到一个如何实现这个的成功例子.
关于如何在这两种类型之间进行转换的任何帮助都将非常感激.注意:在这种情况下IPicture不类似IPictureDisp.
鉴于我有一个.wav文件,在C#中读取其比特率属性的最佳方法是什么.我试过Shell,并问了一个问题"比特率"属性是否固定在索引28中?没有asnwers所以.此外,我现在相信Shell不是读取音频文件属性的最佳方式.我研究过不同的开源媒体库,但是找不到多少.
TagLib#:这个工作正常,但有两个问题.在比特率非常低(如小于30)的某些情况下,它不反映实际比特率,它只返回0.其次,我不确定是否可以将其用于商业用途.许可证说 http://opensource.org/licenses/LGPL-2.1
NAudio:根本没有暴露任何属性来读取比特率,所以我必须计算它.经过研究,我得到了这个公式来计算比特率.bitrate = Samplerate*Channels*BitsPerSample.这在大多数情况下都可以正常工作,但是如果某些.wav文件的BitsPerSample = 0则会失败.是的文件绝对没问题,我可以播放,但BitsPerSample仍为0.
MediaInfo:再次没有直接属性,必须遍历音频文件的所有属性,然后搜索"整体比特率".而且必须在项目中添加两个dll,一个是.net包装器,另一个是实际的dll.
为这么长的总结道歉,但我不想问"嘿我怎么能得到音频文件的比特率"而不显示我已经做过的事情.那么,如果你有一个.wav音频文件,你会用什么库/方法来获得比特率?