다양 libspotify API 함수는 화상 ID가 거래 :libspotify : 이미지 ID로 무엇을 할 수 있습니까?
이들 모두 const byte*
A와 화상 ID를 반환 :
sp_album_cover
sp_artist_portrait
sp_artistbrowse_portrait
sp_image_image_id
sp_image_create
가 const byte[20]
로서 화상 ID 파라미터 소요 sp_playlist_get_image
가 byte[20]
로서 화상 ID 매개 변수를 사용하면서 이미지 ID 값으로 채 웁니다. 이 질문에
는 스포티 파이 직원은 이미지 ID의 내용이 불투명 모두 있다고 20의 크기가 이미지 ID에 대한 정확한 길이를 반드시 아니라고 : libspotify API: image ID format?
sp_image_create 소요가 20 바이트의 긴 image_id 매개 변수 이미지 ID의 최대 길이가 20 바이트임을 의미합니까?
아니요. sp_subscribers는 컴파일러에 위조 된 번호를 넣은 또 다른 예입니다. 이미지 ID 포인터의 내용은 불투명하며 릴리스간에 변경 될 수 있습니다. 그것들에 대한 가정을 만드는 코드를 작성하지 마십시오. 깨질 것이기 때문입니다.
그러나 sp_playlist_get_image
를 사용하기 위해, 호출자는 화상 ID를 저장하는 배열을 할당 필요하다. 이것은 일관성없는 조언 인 것처럼 보이거나 최소한 놀라운 것입니다. 다음 중 어느 것이 사실입니까?
- 해석 A : 이미지 ID가 항상 정확히 20 바이트 될 것입니다.
- 해석 B : 이미지 ID의 길이는 최대 20 바이트 일 수 있습니다.
- 해석 C : 이미지 ID의 길이는 제한되지 않지만 에 의해 반환 된 이미지 ID는 20 바이트를 넘지 않습니다.
- 통역 D : 이미지 ID의 길이는 제한되어 있으며
sp_playlist_get_image
은 전혀 사용하지 마십시오.
나는 링크 된 질문에 대한 답은 아마도 A와 B를 배제 생각, 그래서 대답은, 아마도 그만큼 실망 C라고 생각합니다. 완전히 비관적 인 사람이 D와 함께 할 수도 있습니다.
보다 안전하고 높은 수준의 .NET 래퍼를 작성하려고하는데 저는 libspotify.net보다 안전하며 관리되는 코드에 이미지 ID를 표시하는 방법을 모르겠습니다. . 두 가지 대안을 구현하는 것이 유일한 방법이라고 생각합니다. 하나는 sp_playlist_get_image
에서 반환 된 이미지 ID를 나타내는 20 바이트 버퍼이고 다른 하나는 다른 것으로부터 반환 된 이미지 ID를 나타내는 IntPtr입니다. 라이브러리가 이미지 ID의 크기와 성질에 대해 충분한 보증을했다면, 필자는 항상 자신의 버퍼를 사용하여 필요할 때 복사 할 수 있었지만, libspotify가 이것을 허용 할만 큼 가까운 곳에 보증 할 가능성은 희박합니다.
의도는 오픈 소스입니다. 나는 다음 달에 그것을 github에 넣기를 바랄 것입니다. 내가 할 때 https://github.com/organizations/openhome 어딘가에있을 것입니다. – Weeble
위에서 언급 한 C# 래퍼 라이브러리가 여기에 있습니다. https://github.com/openhome/ohLibSpotify – Weeble
재생 목록 작업을위한 imageID를 얻었습니까? 나는 interop 호출을 위해 Byte [] 타입을 사용하고 있으며, 결코 전달하지 않는 버퍼는 libspotfiy에 의해 채워지거나 변경된 것처럼 보이지 않는다. –