使用 getid3 (id3v2) 将 APIC 写入 mp3 文件

2024-04-13

我正在尝试使用 getid3 将 APIC 图片写入 mp3 文件。这是代码;

$cover = "/home/user/public_html/artwork/cover.jpg";
$TagData['attached_picture'][]=array(
'picturetypeid'=>2, // Cover. More: module.tag.id3v2.php -> function APICPictureTypeLookup
'description'=>'cover', // text field
'mime'=>'image/jpeg', // Mime type image
'data'=>$cover // Image data
);

但它不起作用。图像大小约为 1.5 MB。我应该调整它的大小还是什么?

我哪里错了?

Thanks


看看他们网站上的演示:http://www.getid3.org/source/demo.write.phps http://www.getid3.org/source/demo.write.phps

代码片段:

$fd = fopen($_FILES['userfile']['tmp_name'], 'rb')
$APICdata = fread($fd, filesize($_FILES['userfile']['tmp_name']));
fclose ($fd);

$imagetypes = array(1=>'gif', 2=>'jpeg', 3=>'png');
if (isset($imagetypes[$APIC_imageTypeID])) {
    $TagData['attached_picture'][0]['data']          = $APICdata;
    $TagData['attached_picture'][0]['picturetypeid'] = $_POST['APICpictureType'];
    $TagData['attached_picture'][0]['description']   = $_FILES['userfile']['name'];
    $TagData['attached_picture'][0]['mime']          = 'image/'.$imagetypes[$APIC_imageTypeID];
}

似乎数据键需要是图像内容,而不仅仅是图像文件的路径。 所以在你的情况下,它应该是这样的:

$cover = "/home/user/public_html/artwork/cover.jpg";
$fd = fopen($cover, 'rb')
$APICdata = fread($fd, filesize($coverFile));
fclose ($fd);

$TagData['attached_picture'][]=array(
'picturetypeid'=>2, // Cover. More: module.tag.id3v2.php -> function APICPictureTypeLookup
'description'=>'cover', // text field
'mime'=>'image/jpeg', // Mime type image
'data'=>$APICdata  // Image data
);

注意:这只是快速浏览一下演示代码后的结果,我还没有使用过这个库或测试过这个代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 getid3 (id3v2) 将 APIC 写入 mp3 文件 的相关文章

  • 准备好的语句需要 0 个参数,给定 1 个参数..,使用 php 手册示例 [重复]

    这个问题在这里已经有答案了 我直接从 php 手册示例中获取了这个 它几乎与我需要的相同 但我仍然收到此错误 有人可以告诉我我错过了什么吗 stmt link gt prepare SELECT obitBody Photo FROM tn
  • MYSQL 的 Google OAuth 2.0 用户 ID 数据类型

    我正在实施 Google OAuth 2 0 并注意到 Google OAuth 返回的唯一用户 ID 是21位数字长的 我想大整数 20 足以满足这种需求 但我现在看到 Google OAuth 返回的用户 ID 的长度感到困惑 关于我应
  • 压缩 zend Framework 2 的 html 输出

    我目前正在 PHP 5 4 4 上使用 Zend Framework 2 beta 开发个人 web 应用程序以用于自学目的 我想知道是否可以在 html 输出发送到浏览器之前拦截它 以便通过删除所有不必要的空格来缩小它 我怎样才能在ZF2
  • 重复使用相同的卷曲手柄。性能大幅提升?

    在 PHP 脚本中 我对不同的 URL 执行了许多不同的curl GET 请求 一百个 将重复使用来自curl init提高性能 还是与请求的响应时间相比可以忽略不计 我这么问是因为在当前的架构中保持相同的句柄并不容易 交叉发布自我应该关闭
  • 使用 PHP 对 ASP.NET 成员身份中的用户进行身份验证

    我在尝试使用 PHP 针对现有 ASP NET 成员资格数据库对用户进行身份验证时遇到一些问题 我在网上搜索过 发现现有的答案似乎对我不起作用 即 public static function Hash password salt deco
  • 具有动态表单名称的 form_widget

    在我的 Twig 模板中 我有一个 FOR 循环 它创建多个表单 如下所示 for thing in things set form id myform thing Id set form name attribute form myfor
  • Node.js 中的 PHP exit()/die() 等价物是什么

    什么是 PHP die http www php net manual de function die php http www php net manual de function die php 在 Node js 中等效吗 https
  • php 中的简单授权/登录功能

    我希望第一次实现用户登录到我的网站 我很高兴构建自己的解决方案 或者实现一些开源的东西 但是到目前为止 在我的搜索中没有任何包是明显的选择 同样 我完全意识到 作为一名中级 php 程序员 如果我推出自己的解决方案 并真正敞开大门 我很可能
  • 将函数中的会话变量传递给 codeigniter 中的助手

    这就是我正在尝试做的事情 这是控制器中的功能 public function get started if test login this gt session gt all userdata this gt load gt view te
  • PHP 中的 Preg_replace

    我想替换 中包含的字符串中的内容content 它是多行等 preg replace 函数应该删除整个 com 没有垫子 蒙特 尝试这个 result preg replace s replacement content subject
  • 如何将 mysql 转换为 mysqli? [复制]

    这个问题在这里已经有答案了 我厌倦了将 mysql 转换为 mysqli 但似乎收到了很多错误和警告 连接到数据库没有问题 但其余代码似乎错误 我做错了什么 sql
  • Android GCM 服务器的 API 密钥

    我有点困惑我应该为 GCM 服务器使用哪个 API 密钥 在文档中它说使用 android api 密钥 这对我不起作用并且总是给出未经授权的 http developer android com google gcm gs html ht
  • 使用PHP套接字发送和接收数据

    我正在尝试通过 PHP 套接字发送和接收数据 一切正常 但是当我尝试发送数据时 PHP 不发送任何内容 Wireshark 告诉我发送的数据长度为 0 我正在使用这段代码
  • 在 Woocommerce 购物车中设置最小小计金额

    我正在尝试将最低订单金额设置为 25 美元 到目前为止 我找到了这段代码 如果未达到最低限度 它似乎可以阻止结账 但它使用的小计包含税费 我需要在总计中排除税费 add action woocommerce checkout process
  • 通过JS Laravel访问存储目录

    有没有办法访问storage目录 该目录已经链接到publicJS 中的目录 我正在尝试制作一个上传图片的表单 验证脚本 if request gt hasFile photos marker gt photos request gt ph
  • 如何在没有引用的情况下复制对象?

    PHP5 OOP 有据可查对象通过引用传递 http php net manual en language oop5 references php默认情况下 如果这是默认的 在我看来 有一种非默认的方式可以在没有参考的情况下进行复制 如何
  • Azure 上的“phpcomposer.phar install”出现“无法终止进程”错误

    我正在尝试将我的 Symfony 2 应用程序部署到 Microsoft Azure 网站云 为此 我按照本指南中的步骤操作http symfony com doc current cookbook deployment azure web
  • php下拉菜单人口

    我正在尝试编写一个 php 脚本 该脚本将根据主下拉菜单的选择填充第二个下拉菜单 我想使用 jquery 来完成所有非页面刷新的事情 但我发现现有的所有东西都很难理解和修改 你知道有什么写得很好且易于理解的东西吗 或者可能是现有的教程 下面
  • 检查文件权限

    我怎样才能检查file permissions 无需通过运行操作系统特定命令passthru or exec Use 文件权限 http php net fileperms功能 clearstatcache echo substr spri
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了

随机推荐

  • android 如何监听自定义变量?

    我看过这个线程 如何实现监听器 https stackoverflow com questions 5941960 android how to implement listener关于实现侦听器 它实际上非常简单 但我不知道它到底是如何完
  • 检索并使用 Microsoft 或 Mozilla 的 Root-CA 列表并在 Java 中使用它?

    OpenJDK for Windows 中包含的根 CA 证书列表非常令人印象深刻 但有很多根 CA 证书受到 Firefox 等常见浏览器的信任 但不受 Java 信任 Both 微软 https support microsoft co
  • ASP.NET MVC3 和服务器端验证

    假设用户禁用了 javascript 因此客户端验证在 MVC3 中不起作用 实现服务器端验证的最佳方法是什么 以便当用户尝试以不适当的方式处理数据时仍然显示验证消息 Thanks EDIT 显然发生这种情况是因为我使用 EF 生成的模型
  • jquery fancybox 触发点击仅工作一次

    我从绑定到表行的单击事件调用 jquery fancybox 链接 该操作第一次工作正常 但是 如果我关闭 fancybox 并再次单击任何行 绑定到该行的匿名函数仍然会触发 但 fancybox 不会启动 这是我正在使用的 JavaScr
  • 在 CruiseControl.NET 构建中使用“devenv”和“msbuild”有什么区别?

    CruiseControl NET 中使用 标记和 标记的主要区别是什么 我知道它们调用不同的可执行文件 但有时我会得到不同的结果 就编译时的通过 失败而言 我想知道为什么两个构建命令之间存在差异 基本上 devenv Visual Stu
  • hashbang 行上的 Eclipse javascript 语法错误

    当我将一些现有的 Node js 代码导入 Eclipse 工作区时 它会抱怨 令牌 无效字符 出现语法错误 请删除此令牌 on the usr bin env node哈希邦线 我怎样才能告诉 Eclipse 忽略这个错误 对于 Node
  • Android - 如何更新通知号码

    您好 我想在单个视图中显示所有通知 并且想要更新状态栏中的通知数量 它更新所有信息 但显示数量始终为 1 请告诉我如何解决它 Override public void onReceive Context context Intent int
  • VHDL 中的 #define 等价物是什么

    VHDL 中的 define ifdef 和 ifndef 相当于什么 我想使用泛型作为 define 并根据它们更改设计 举一个简单的例子 定义一个字符串泛型并用它来确定时钟是单时钟还是差分时钟 generic something boo
  • 如何将 NSData 转换为 NSString? [复制]

    这个问题在这里已经有答案了 可能的重复 将 UTF 8 编码的 NSData 转换为 NSString https stackoverflow com questions 2467844 convert utf 8 encoded nsda
  • 如何在其适配器的 onBindViewHolder 内更新 recyclerView?

    我在 recyclerView 中制作了一张卡片列表 当卡持有一段时间后 其在数据库中的相应条目将被删除 因此之后 必须删除该卡 这可以通过调用设置新的更新适配器来完成 但我无法在 onBindViewHolder 中使用 setAdapt
  • 在 Firefox 中,在选项卡重定向之前获取 URL 的方法是什么?

    我为 Firefox 开发了一个附加组件 它有一个重定向链接 https www google com vn url sa t rct j q esrc s source web cd 1 cad rja uact 8 ved 0CB0QF
  • pytest 无法导入模块,而 python 可以

    我正在用 Python 开发一个包 我使用虚拟环境 我在 virtualenv 的 pth 路径中设置了模块根目录的路径 这样我就可以在开发代码时导入包的模块并进行测试 问题 1 这是一个好方法吗 这工作正常 这是一个例子 这是我想要的行为
  • 使用证书和自定义 ssl 套接字工厂到 ldap 的 SSL 连接

    这是我的场景 我想使用 jndi 连接到 ldap 我使用自定义 SSLSOcketfactory 来读取信任库和密钥库 上下文创建成功 但是当我尝试使用相同的凭据进行身份验证时 它会抛出一个错误 告知不支持该身份验证方法 这是我的自定义
  • 在 JavaScript 或 jQuery 中动态更改 CSS 规则

    我正在寻找一种方法来更改文档中导入的样式表的 CSS 规则 所以我有一个外部样式表和一些class and div里面的属性 我想使用 JavaScript 或 jQuery 更改其中一项规则 这是一个例子 red color red 所以
  • 用java将图像写入pdf文件

    我正在编写一个代码 将 Microsoft power point ppt 幻灯片转换为图像 并将生成的图像写入 pdf 文件 以下代码生成图像并将其写入 pdf 文件 但我面临的问题是 当我将图像写入 pdf 文件时 它的大小超出了 pd
  • 通过Powershell为证书私钥分配权限(Win 2012 R2)

    在附加到域的 Windows Server 2012 R2 计算机上 我运行以下语句 target machine fqdn System Net Dns GetHostByName env computerName certificate
  • Javascript clientHeight 和替代方案

    我目前正在尝试修改一个 滑入 的 Javascript 函数 该脚本要求您定义 div 的高度 因此它在动态填充的 中几乎没有用处 我在 javascript 中的 clientHeight 属性上发现了一些文本 但它似乎不支持将显示设置为
  • 如何将浮点数包装到区间 [-pi, pi)

    我正在寻找一些可以有效完成的不错的 C 代码 while deltaPhase gt M PI deltaPhase M TWOPI while deltaPhase lt M PI deltaPhase M TWOPI 我有什么选择 更新
  • Git Status 使用 Cygwin 挂起

    在我的 Windows 机器上 我有一个可以与 msysgit 很好地配合的存储库 但当我尝试跑步时git status在 cygwin 上 它只是挂起 不打印任何内容 直到我按 Ctrl C 我怎样才能调查这个问题以找出这种行为的原因 造
  • 使用 getid3 (id3v2) 将 APIC 写入 mp3 文件

    我正在尝试使用 getid3 将 APIC 图片写入 mp3 文件 这是代码 cover home user public html artwork cover jpg TagData attached picture array pict