- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 TagLib 在 .mp3 中设置专辑封面,但出现错误 11(段错误),我似乎找不到解决方案。
到目前为止,这是我的代码:
TagLib::MPEG::File mp3_file(filename.c_str());
TagLib::ID3v2::Tag *mp3_tag;
mp3_tag = mp3_file.ID3v2Tag(true);
TagLib::ID3v2::AttachedPictureFrame picture;
picture.setMimeType("image/jpeg");
picture.setDescription("Cover");
picture.setType(TagLib::ID3v2::AttachedPictureFrame::FrontCover);
std::ifstream image(image_path, std::ios::binary | std::ios::ate);
const auto fileSize = image.tellg();
image.seekg(0);
TagLib::ByteVector image_data((unsigned int) fileSize, 0);
image.read(image_data.data(), fileSize);
image.close();
picture.setPicture(image_data);
mp3_tag->addFrame(&picture);
mp3_file.save();
图像是 .jpg,因此 MIME 类型是正确的。当代码到达 mp3_tag->addFrame(&picture);
行时,它存在段错误,奇怪的是图像被设置为 .mp3 文件,所以我不明白是什么原因造成的这个错误。
我也尝试通过使用此库查看一些 C# 和 Ruby 代码来寻找可能的原因,但我找不到不会导致段错误的解决方案。
最佳答案
我从未遇到过 TagLib,但是,阅读 the documentation , TagLib::ID3v2::AttachedPictureFrame 图片;
变量需要在堆上分配,因为 TagLib::ID3v2::Tag::addFrame(Frame* frame)
函数将取得框架的所有权,因此负责释放内存。
发生段错误是因为它试图释放在堆栈上分配的内存(picture
变量)。
你可能想要的是这样的:
[...]
std::ifstream image(image_path, std::ios::binary | std::ios::ate);
const auto fileSize = image.tellg();
image.seekg(0);
TagLib::ByteVector image_data((unsigned int) fileSize, 0);
image.read(image_data.data(), fileSize);
image.close();
TagLib::ID3v2::AttachedPictureFrame* picture = new TagLib::ID3v2::AttachedPictureFrame(image_data);
mp3_tag->addFrame(&picture);
mp3_file.save();
[...]
关于c++ - Taglib 设置相册图片但给出 seg 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46478970/
这就是我现在拥有的,它适用于单个图像。 curl -vH "Authorization: Client-ID 3e7a4deb7ac67da" -F image=@/path/to/image htt
我有一套 PDF 相册模板(它们在文本和照片应该放置的地方有空白方 block )。我的需求是使用这些模板来生成实际的相册。 我的计划是使用 iText 和 Java。我会向应用程序发送一组要使用的所
我有一个包含多个字段的表单,用户需要通过附加图像数量的选项来感受: '; $num++; } ?> 提交后,它会在数据库中创建一个名为“album”的表,如下所示: fun
我创建了一个 Facebook 相册并拥有相册 ID。我可以使用/photos API 将照片上传到相册。但我无法使用类似/videos API 的方式上传视频。我收到错误消息: “(#200)用户没
我的代码是这样的: oldPicker = [[UIImagePickerController alloc] init]; if([UIImagePickerController isSourceTy
我正在实现一个 iPhone 应用程序,我必须从 Facebook 相册中检索图像并将这些照片显示为应用程序中的图库。我有这个链接 http://www.facebook.com/media/set/
我可以通过将数据发布到 使用 facebook graph api 创建相册 http://graph.facebook.com/ALBUM_ID/albums 它返回一个 id,这不是相册 id。
我是 Swift 的新手,我正在尝试使用 fetchAssetCollections 创建一个简单地返回屏幕截图相册中照片数量的函数 我有 func getNumScreenshots() -> In
我在使用权限上传到特定 Facebook 相册时遇到问题。 我被设置为特定 Facebook 页面的管理员,但是每当我尝试上传照片时,我似乎无法获得执行此操作的权限。 我得到的错误是: Fatal e
对于相册,我看到大多数人使用 3 个表: 专辑相片相册。 但是,如果我查看像 facebook 这样的网站,这个模式将不起作用(如果我理解正确的话),因为我的个人资料相册和一般相册中可能有一张照片,但
我正在编写一个程序来在本地备份我的 Google 相册库,上周代码运行良好,但在过去的几天里,我反复从 API 客户端收到错误消息,说“photoslibrary v1”不存在在 Google 的 A
似乎大多数方法都指向UIImageWriteToSavedPhotosAlbum(),但是在iOS 6及更高版本中,您需要用户权限才能写入相机胶卷,因此,如果他们说“no”,我希望能够调用代码。 是否
我想用Java制作简单的相册。要做到这一点,我认为这将是使用网格布局协调图片的最简单方法。 我有图片的缓冲图像,我正在尝试使用以下代码将它们添加到网格布局中, BufferedImage a
我正在制作一个数据采集应用程序,它可以让医生拍摄皮肤病的照片以供以后用于人工智能/机器学习目的,所以我的应用程序将有一个拍照按钮来拍照,假设有 4 个标签或按钮命名疾病(水痘,湿疹等)一旦用户拍照,他
我有一个 nodejs (+express + mongodb,gridstore) 后端,想上传一张照片到 facebook 相册。 我遇到了两种方法。第一个 ( https://developer
我正在尝试使用 Google Photos API增量上传一个非常大的本地照片库。 一切正常,但在上传大约 1.2GB 后,请求开始被拒绝并显示以下消息: Insufficient tokens fo
从youtube到google +很容易。但另一方面 我有一个Google Plus个人资料和与其链接的YouTube channel 。但是-从youtube-我看不到我的google +相册中的视
我正在尝试在 iPhone 应用程序中获取 facebook 用户的任何专辑。 这是我正在使用的 fql 查询 NSString *query = [NSString stringWithFormat
我正在尝试利用 Google Photos 幻灯片构建一个由 Raspberry Pi 驱动的数字相册。理想情况下,我希望能够通过 Selenium 自动化登录过程,然后使用 BeautifulSou
我正在尝试使用 Picasa Web Albums API 重构 Java 应用程序使用新的 Google 相册 API。 在 Picasa API 中,您有 PhotoEntry 对象,它代表上传的
我是一名优秀的程序员,十分优秀!