Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >libspotify:对于图像ID,我能做什么,不能做什么?

libspotify:对于图像ID,我能做什么,不能做什么?
EN

Stack Overflow用户
提问于 2013-01-04 02:49:03
回答 1查看 292关注 0票数 1

各种libspotify API函数处理图像ID:

这些都将图像ID作为const byte*返回

代码语言:javascript
运行
AI代码解释
复制
sp_album_cover
sp_artist_portrait
sp_artistbrowse_portrait
sp_image_image_id

sp_image_create以图像ID参数作为const byte[20],而sp_playlist_get_image将图像ID参数作为byte[20],并将其填充为图像ID值。

在这个问题中,Spotify的雇员说,图像ID的内容是不透明的,大小20不一定是图像ID:libspotify API:图像ID格式?的精确长度。

sp_image_create采用20字节长的image_id参数。这是否意味着图像id的最大长度是20个字节?不是的。sp_subscribers是我们为编译器放置假数字的另一个例子。图像id指针的内容是不透明的,并且可能在不同版本之间发生变化。不要编写对它们做出假设的代码,因为它会崩溃。

然而,为了使用sp_playlist_get_image,调用方需要分配数组来存储图像ID。这似乎是不一致的建议,或者至少是令人惊讶的。以下哪一项是正确的?

  • 解释A:图像ID总是20字节。
  • 解释B:图像ID的长度可以达到20个字节。
  • 解释器C:图像ID可以是任意长度的,但是sp_playlist_get_image返回的图像ID不超过20个字节。
  • 解释D:图像ID可能有任意长度,而sp_playlist_get_image根本无法安全使用。

我认为这个相关问题的答案排除了A和B,所以我认为答案可能是C,尽管这是令人沮丧的。一个彻底的悲观主义者可能会跟随D。

我之所以感兴趣,是因为我试图编写一个比现有的.NET更安全、级别更高的libspotify.net包装器,而且我也不知道如何在托管代码中显示图像ID。我认为它唯一的特点是有两个替代的实现--一个具有一个20字节的缓冲区,表示从sp_playlist_get_image返回的图像ID,另一个带有一个代表其他任何东西返回的图像ID的IntPtr。如果库对图像ID的大小和性质提供了足够的保证,那么我总是可以使用自己的缓冲区,并在必要时将其复制到其中,但我担心libspotify不太可能提供足够强大的保证。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-04 04:07:32

对于libSpotify的当前版本,解释器C对于该特定调用是正确的。因为它需要byte20,所以函数保证如果分配20个字节,就会有足够的播放列表的图像ID。如果这保证将来发生变化,则函数签名将被更改,假设到那时我们还没有使它像其他所有东西一样工作。

考虑到API的状态,您的混合解决方案现在听起来是最好的。使用IntPtr,当那个讨厌的sp_playlist_get_image消失时,您可以在那里做更多的未来证明。

我希望你的项目进展顺利-我们一直想要一个体面的.NET包装多年,但从来没有时间来做整个事情自己。如果它是开源的,我将很乐意为您贡献。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14155679

复制
相关文章
Scala 3 不再支持 XML 了吗?
前段时间,我为Scala 3提出了XML字面量语法提案,在社区中正在讨论。这个提案可能预示着 Scala 3、Scala.js和Binding.scala的未来前景。为什么这么说?还得先聊聊Scala目前在编程语言界的江湖地位是怎么来的。
ThoughtWorks
2019/07/09
1.1K0
Scala 3 不再支持 XML 了吗?
python3不再支持mysqldb 请
python3不再支持mysqldb 请用pymysql和mysql.connector
py3study
2020/01/06
4830
jQuery 2.0将不再支持IE 6/7/8
jQuery官方发布了下一阶段jQuery的路线图,该路线图显示jQuery 1.8将在一个月内发布,而其他后续版本的计划如下: jQuery 1.9 (early 2013): 该版本将移除所有在1
deepcc
2018/05/16
8220
Drools7.12不再支持workbench tomcat版本
Drools7.12不再支持workbench tomcat版本,在之前版本中还是存在着tomcat8版本的支持。
程序新视界
2022/05/09
4410
Drools7.12不再支持workbench tomcat版本
不再支持 IE,React 新特性详细解读
近日,React 18 已经正式发布了,带来了许多令人兴奋的新特性。在这个版本中,React 通过其改进的渲染系统带来了并发能力,并在此基础上构建了转换或自动批处理等性能增强特性。本文将介绍这些特性的机制,以及它们对 React 开发人员有哪些帮助。
深度学习与Python
2022/06/13
2K0
Gitlab 从 12.1 版本开始不再支持 MySQL
Gitlab 官方 宣布 ,将从 12.1 版本开始不再支持 MySQL 数据库。早在 2017 年 7 月,Gitlab 就计划将弃用对 MySQL 的支持。而目前这个决定将从 12.1 版本开始。
Debian中国
2020/01/21
9940
英伟达官宣:CUDA 将不再支持 macOS
内容提要:或许,今后我们再也看不到搭载英伟达显卡的新款苹果电脑了。英伟达在最近的一份说明文档中宣布,将停止 CUDA 对 macOS 的驱动支持。这意味着,苹果与英伟达合作中的最后一根纽带也将断裂。
HyperAI超神经
2019/11/29
2.9K0
HHVM 3.24 正式发布:不再支持 PHP 5
HHVM 3.24 终于发布了,此版本包含新功能、错误修复、性能改进和对未来改进的支持工作。值得注意的是,HHVM 3.24 是支持 PHP 5 的最后一个版本,这包括对 PHP 5 扩展 (ext_zend_compat) 的源码级别兼容性。官方建议迁移到 Hack 或 PHP 7。
Debian中国
2018/12/20
4890
Newbe.Mahua 2.0 不再仅仅支持 .Net
从 2017-03-31 发布 Newbe.CQP.Framework 先行版,到 2018-12-25 发布 Newbe.Mahua 1.15 版本为止。1.X 版本系列已经为 C# 开发者提供了近两年的良好开发体验。
newbe36524
2020/03/16
5310
jQuery 发布 2.0 版本,不再支持 IE 6/7/8
昨天,jQuery 的官方博客发布了一条重要信息:jQuery 2.0 Released。jQuery 推出了最新升级版 2.0,下面来结合官方的说明,介绍一下最新版的一些特性。
Denis
2023/04/15
1K0
Serverless 云函数支持 TDMQ 触发器 - 更高效的消息队列触发方式
01. Serverless 与消息队列生态结合 消息队列 MQ 是 Serverless 事件驱动场景下必要的解耦中间件也是云函数最重要的触发源之一。TDMQ 是一款基于 Apache 顶级开源项目 Pulsar 自研的金融级分布式消息中间件。其计算与存储分离的架构设计,使得它具备极好的云原生和 Serverless 特性,用户按量使用,无需关心底层资源。它拥有原生 Java 、 C++、Python、Go 等多种 API,同时支持 Kafka 协议以及 HTTP 协议方式接入,可为分布式应用系统提供异
腾讯云serverless团队
2021/06/10
1.5K0
从Xcode10不再支持libstdc++说起
众所周知从Xcode10起,苹果摒弃了对libstdc++库的支持转而支持libc++库了。这两个库在Xcode9甚至更早的版本就已经同时存在于系统中并且可供开发者选择,当然在Xcode9时代苹果就已经宣布了将要废弃libstdc++的信息了。
欧阳大哥2013
2018/11/09
2.2K0
Serverless 云函数支持 TDMQ 触发器 - 更高效的消息队列触发方式
Serverless 与消息队列生态结合 消息队列 MQ 是 Serverless 事件驱动场景下必要的解耦中间件也是云函数最重要的触发源之一。TDMQ 是一款基于 Apache 顶级开源项目 Pulsar 自研的金融级分布式消息中间件。其计算与存储分离的架构设计,使得它具备极好的云原生和 Serverless 特性,用户按量使用,无需关心底层资源。它拥有原生 Java 、 C++、Python、Go 等多种 API,同时支持 Kafka 协议以及 HTTP 协议方式接入,可为分布式应用系统提供
腾讯云中间件团队
2021/06/11
3.9K1
Angular 10 正式发布,不再支持 IE9/10!
Angular v10.0.0 正式发布了!这是跨越整个平台(包括框架、Angular Material 和 CLI)的一次主要版本更新。这次的新版发布间隔比以往短一些。自我们发布 Angular 9.0 版以来只过去了四个月。
逆锋起笔
2020/07/15
2.5K0
关于github不再支持密码提交的解决方案
这里给了一个关于不支持密码的公告,以前没注意 https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations
QAIU
2023/03/14
5290
真的要说再见,PyTorch宣告不再支持Python2
Python2 是 Python 官方在 2000 年开源的 Python 新版本,但因为其自身的问题,导致 Python 官方几年内就推出了新的 Python3。出于保护开源社区的初衷,官方并没有强迫开发者升级,并继续给予 Python2 更新维护,因此 Python2 就一直苟延残喘到了今年。
机器之心
2019/09/26
5710
PHP 5.5正式发布,不再支持Windows XP和2003
经过半年多的开发,PHP 5.5.0正式版终于和大家见面了,该版本包含了大量的新功能和bug修复。
Denis
2023/04/15
4240
真的要说再见,PyTorch宣告不再支持Python2
Python2 是 Python 官方在 2000 年开源的 Python 新版本,但因为其自身的问题,导致 Python 官方几年内就推出了新的 Python3。出于保护开源社区的初衷,官方并没有强迫开发者升级,并继续给予 Python2 更新维护,因此 Python2 就一直苟延残喘到了今年。
磐创AI
2019/10/09
4000
Selenium最新版本不再支持PhantomJS
今天想对《自动读取单位某系统数据》一文中的项目做些优化,将Selenium+firefox改为无界面的PhantomJS,出现如下错误:
拓荒者
2019/03/15
1.9K0
新技术触发新变革,众筹或将不再是那个众筹
文|孟永辉 2002年,一位来自哈佛的大学生创造了一款新型的社交工具,这款社交工具起先只是单纯地依赖校园内网。谁曾想到,它竟然拥有如此大的魔力最终改变了人们的社交习惯。新技术带给人们生活方式的转变本来就是无法预料,这款社交工具同样如此。借助这款社交工具,这个青年人完成了由学生到创业者再到千万富翁的完美蜕变,年纪轻轻就已经稳居全球亿万富豪的宝座。而由他带领的互联网公司同样成为这个星球上都闻名遐迩的互联网公司,这个哈佛大学生也因此成为亿万富翁,通过不断开发新技术,不断拥抱新的思路和理念,继续创造着属于他的神话
孟永辉
2018/05/11
8330

相似问题

在包含一百万个元素的数组中找到唯一唯一的元素

44

在复合数组中找到唯一的元素

713

在数组中找到唯一和重复的元素?

110

如何在c++中找到最小和唯一的数组元素?

43

如何尽快在具有唯一元素的小数组中找到匹配的元素?

37
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文