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

复制
相关文章
解读央行《区块链能做什么、不能做什么?》
但关键点还是价格稳定,性能提高,方便快捷,才会吸引更多的人使用,形成良性循环。目前稳定价格的策略有两种:
文彬
2018/12/10
2.1K0
解读央行《区块链能做什么、不能做什么?》
unicloud进阶uni-id入门(一)---uni-id能做什么?
这个专栏就带大家使用uni-id 由于要写毕设和论文 所以会更新很慢 如果你对云开发感兴趣 可以加入交流群 974178910 535620886
代码哈士奇
2021/10/25
7680
unicloud进阶uni-id入门(一)---uni-id能做什么?
JavaScript能做什么?
JavaScript除了做前端开发,还能做什么? 很多朋友学习的第一门编程语言就是JavaScript,学习的过程中一定会思考这个问题:“JavaScript除了做前端开发,还能做什么?”其实很多人问这个问题的时候,潜意识是有一些懒惰的嫌疑,希望JavaScript能做的事儿越多越好,这样我们专心学好JavaScript,就可以成为万金流,什么都能做,就再也不用管什么java、php、python等等编程语言了。 那我们在思考JavaScript能做什么之前,先看看下面这个问题: 厨房里的一把菜刀除了切
企鹅号小编
2018/01/22
2.2K0
JavaScript能做什么?
吴恩达:人工智能现在可以做什么和不能做什么?
许多管理人员问我人工智能可以做什么。 他们想知道它将如何破坏他们的行业,以及他们如何使用它来重塑自己的公司。 但最近媒体会不切实际地夸大AI的力量 (也许很快它会接管世界!)。AI已经在改变网络搜索、广告、电子商务、金融、物流、媒体等。作为Google Brain团队的创始人、斯坦福人工智能实验室的前主任,现在是百度大约1,200人的AI团队的领导者,我有幸培育了许多世界领先的AI组,并已建立了许多AI产品被数亿人使用。 看到AI的影响,我可以说:AI将改造许多行业, 但它不是魔术。 为了理解对你的业务的影
GPUS Lady
2018/04/02
1.2K0
吴恩达:人工智能现在可以做什么和不能做什么?
TPYBoard能做什么?
MicroPython基于ANSI C,语法跟Python 3基本一致,拥有自家的解析器、编译器、虚拟机和类库等。目前他支持基于32-bit的ARM处理器,比如说STM32F405。也就是说ARM处理器STM32F405上直接可运行Python语言,Python语言来控制单片机。
小板凳
2020/04/09
3.1K10
Gulp能做什么
var s = gulp.src(["fileA","fileB","fileC"])
Qwe7
2022/05/21
1.4K0
Python能做什么?
Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。使用Python语言编写的Gunicorn作为Web服务器,也能够运行Python语言编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的沟通。一些Web框架,如Django、Pyramid、TurboGears、Tornado、web2py、Zope、Flask等,可以让程序员轻松地开发和管理复杂的Web程序。
py3study
2020/01/15
1.4K0
大数据能做什么
在海量数据的背景下 1、快速查询 2、数据存储(超大量数据的存储,单个大文件(超过了一个硬盘最大的容量)) 3、快速计算(与传统方案对比 传统用了一个月,大数据用1小时) 4、实时计算(立刻马上) 5、数据挖掘(挖掘实际存在但是没有发现的有价值的数据)
云缓缓知我意
2021/04/15
1.3K0
Python到底能做什么
Python今天是排名前3的最受欢迎和增长最快的编程语言之一。它是一种多用途,高级别,面向对象,交互式,解释型和对用户非常友好的编程语言。 交互模式是Python shell的一项功能,可为您在控制台上输入的每条语句提供即时反馈。Python有一个简单的编码风格,很容易用一点知识和正确的工具来捕捉。因此,这是初学者计划在编程职业生涯中首选的语言。 Python可以做什么? 1、数据库:Python在数据库方面很优秀,可以和多种数据库进行连接,进行数据处理,从商业型的数据库到开放源码的数据库都提供支持。例如:Oracle, My SQL Server等等。有多种接口可以与数据库进行连接,至少包括ODBC。有许多公司采用着Python+MySQL的架构。因此,掌握了Python使你可以充分利用面向对象的特点,在数据库处理方面如虎添翼。 2、多媒体:利用PIL、Piddle、ReportLab 等模块,你可以处理图象、声音、视频、动画等,从而为你的程序添加亮丽的光彩。动态图表的生成、统计分析图表都可以通过Python来完成。 3、web开发框架:django是流行的web开发框架,使用优雅的python语言写成。采用MVC的软件设计模式,主要目标是使得开发复杂的、数据库驱动的网站变得简单。 4、科学计算:说起科学计算,首先会被提到的可能是MATLAB。然而除了MATLAB的一些专业性很强的工具箱还无法替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相应的扩展库。 5、网络编程: Python可以非常方便的完成网络编程的工作,提供了众多的解决方案和模块,可以非常方便的定制出自己的服务器软件,无论是c/s,还是b/s模式,都有很好的解决方法。 6、游戏编程:Python在很早的时候就是一种游戏编程的辅助工具。在《星球大战》中扮演了重要的角色。目前,通过Python完全可以编写出非常棒的游戏程序。
用户10781703
2023/10/10
2770
Redis | 001能做什么?
本系列整理出于《Redis深度历险:核心原理与应用实践》一书,摘抄整理读后感与总结。
Java猫说
2019/04/11
1K0
大数据能做什么?
试问,在现今的各种【企业管理咨询】公司的熏陶下,还有几个企业是自己管理的,都是【职业】经理人,那么,真正的企业家会通过这个报表进行数据的查阅。你说【资本家】是不是可以更轻松了。更有时间琢磨【人性】,让普通老百姓,永远是老百姓而努力。
红目香薰
2022/11/29
1K0
大数据能做什么?
C++能做什么[通俗易懂]
这里有一个有关系统、应用程序和库的列表,列表中的全部或者大部分代码用C++编写,当然,该列表并不全面。即使我如何努力,我也不能列举一个含有 1000个主要由C++编写的程序列表,但是这里的列表可能包含我听说过程序之中的第1000个。这是一个包括系统、应用程序和库的列表,读者可能熟悉其中的一些,新手可能有个概念C++能做什么,或者我仅仅觉得它很“酷”。
全栈程序员站长
2022/08/25
1.4K0
python是什么?python能做什么?
提起python,大多数人的第一反应是网络爬虫,使用python可以快速爬取网站信息。但作为一门编程语言,Web开发才是最基本的功能。Django和Flask是最流行的两种python Web框架,当然其他的还有Bottle、Pylons等等。你可以使用这些Web框架来编写你的服务器端代码。由于Python是一种解释型的脚本语言,开发效率比较高,运行速度也很快,所以非常适合用来做Web开发,比如豆瓣网,知乎,YouTube,Google等知名网站都使用了python。从事该领域应从数据、组件、安全等多领域进行学习,从底层了解其工作原理并可驾驭任何业内主流的Web框架。
全栈程序员站长
2022/09/08
8310
AI时代,FreeSWITCH能做什么?
那么,智能时代跟FreeSWITCH什么关系呢?严格来说,其实没什么关系。你看,我今天又标题党了。
杜金房
2020/12/21
1.7K0
java下载后能做什么
对于很多新手来说可能会很疑惑,java到底是干什么的,入门门槛高不高,java下载在哪下载等问题。其实Java能做的事情非常多,无论是做游戏还是做软件都可以通过Java来实现,程序员也都非常喜欢用Java来制作软件,这种编程语言的高安全性和高跨平台性都是十分难得的。
用户8739990
2021/07/09
4550
java下载后能做什么
hotumoyi吉他_木棒能做什么
乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过 50 个长度单位。
全栈程序员站长
2022/09/22
5090
Postgre中FDW能做什么?
什么是FDW? FDW是外部数据包装器,早在2003年SQL标准中添加一个访问远程数据的规范,这个称为SQL外部数据管理。PostgreSQL从9.1版本已经开发出了FDW.在PostgreSQL中配
用户4700054
2022/08/17
1.6K0
Postgre中FDW能做什么?
【可能】nodeJs,到底能做什么?
这段时间的0621前端零课程讲下来,感觉我的学生们对于nodeJs是一种“无感”的状态,就是不知道学了node能做什么,不知道学习nodeJs的目标是什么。所以对node也没什么学习的动力,基本上对它的感觉就是可以做服务端,类似于phpStudy、iis之类的东西。
web前端教室
2018/07/30
1.7K0
全面了解 Nginx 到底能做什么
作者:Raye 链接:http://www.raye.wang/2017/02/24/quan-mian-liao-jie-nginxdao-di-neng-zuo-shi-yao/
java思维导图
2018/07/26
3640
全面了解 Nginx 到底能做什么
点击加载更多

相似问题

对于这个瓶颈我能做什么?

50

对于CALayer代表,我能做什么?

12

小程序能做什么,不能做什么

22

我不能升级Xcode。我能做什么?

217

XMLHttpRequest能做什么,Fetch API不能做什么?

233
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档