問題タブ [libspotify]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
288 参照

spotify - libspotify: イメージ ID でできることとできないことは?

さまざまな libspotify API 関数がイメージ ID を処理します。

これらはすべて、イメージ ID を次のように返しますconst byte*

sp_image_createはイメージ ID パラメータを として受け取り、イメージ ID パラメータは としてconst byte[20]取りsp_playlist_get_imagebyte[20]それにイメージ ID 値を入力します。

この質問で、Spotify の従業員は、イメージ ID の内容は不透明であり、サイズ 20 はイメージ ID の正確な長さであるとは限らないと言っています: libspotify API: image ID format?

sp_image_create は、20 バイト長の image_id パラメータを使用します。image id の最大長は 20 バイトということですか?

いいえ。sp_subscribers は、コンパイラに偽の番号を挿入した別の例です。イメージ ID ポインタの内容は不透明で、リリース間で変更される可能性があります。それらについて仮定するコードを書かないでください。壊れるからです。

ただし、 を使用するsp_playlist_get_imageには、呼び出し元が配列を割り当ててイメージ ID を格納する必要があります。これは一貫性のないアドバイスのように思われるか、少なくとも驚くべきことです。次の中でどれが正しいですか?

  • 解釈 A:イメージ ID は常に正確に 20 バイトになります。
  • 解釈 B:イメージ ID の長さは、最大 20 バイトです。
  • 解釈 C:イメージ ID の長さは任意ですが、返されるイメージ ID はsp_playlist_get_image20 バイト以下であることが保証されています。
  • 解釈 D:イメージ ID の長さに制限sp_playlist_get_imageはなく、安全に使用することはまったくできません。

リンクされた質問への答えはAとおそらくBを除外すると思うので、答えはおそらくCだと思います。完全な悲観主義者は D を選ぶかもしれません。

既存のlibspotify.netよりも安全で高レベルの .NET ラッパーを作成しようとしており、マネージ コードでイメージ ID を表示する方法がわからないため、興味があります。唯一の方法は、2 つの代替実装を用意することだと思いsp_playlist_get_imageます。ライブラリがイメージ ID のサイズと性質について十分な保証をしていれば、いつでも自分のバッファを使用して、必要に応じてそこにコピーすることができますが、libspotify がこれを許可するほど強力な保証をどこでも行う可能性は低いと思われます。

0 投票する
1 に答える
163 参照

spotify - パッキングに関連してlibspotifyが期待するコンパイラフラグは何ですか?

Windowsでlibspotify 12.1.51を使用しています。ほとんどが期待どおりに機能しますが、次の点で問題がありsp_offline_sync_statusます。

( sp_uint64Windows では unsigned __int64 の typedef であり、それ以外の場合は uint64_t です。C (C++ ではない) でビルドする場合、および bool が定義されていない場合は、unsigned char の typedef です。)

を呼び出すとsp_offline_sync_get_status、正しいデータしかないqueued_tracksようで、残りはゴミです。ただし、ヘッダー ファイルを編集して を含める#pragma pack(1)と、より妥当な結果が得られるようです。spshelllibspotify に付属のサンプルをビルドしようとしても、この動作を観察します。

これにより、少なくとも Visual C++ を使用する Windows では、libspotify バイナリがデフォルトとは異なるコンパイラ フラグでコンパイルされていると思われます。libspotify を使用するには、C または C++ コードをどのようにコンパイルすればよいですか? それとも、#include api.h の前に #pragma pack を使用してから元に戻す必要がありますか? libspotify の将来のバージョンでこれが安定していると期待できますか、それとも変更される可能性がありますか? プラットフォーム間でどのように異なりますか?

私の本当の目標は、Mono を使用してさまざまなプラットフォームで動作する C# P/Invoke コードを作成することです。Windows 以外のプラットフォームでは、libspotify はネイティブ コンパイラのデフォルトのアラインメントに固執しますか? それとも、各プラットフォームでカスタム アラインメントを指定する必要がありますか?

[*] - ただし、最初に他のバグを修正する必要がありました。libspotify 12.1.51 で提供されているように、Windows では、spshell は制御キーの押下 (Shift、Ctrl など) を NUL 文字の入力として登録します。これにより、Spotify URI をコンソールに入力したり貼り付けたりすることができなくなります。これは、spshell_win32.c を編集case 0: break;して の switch ステートメントに追加することで修正できますconsole_input。また、関数内の spshell.c の文字列書式指定子 "%zd" を使用しますoffline_status_updated。Microsoft C ランタイムはこれを処理しないようです。そのため、変更する必要があります (たとえば、Windows でのみ動作させたい場合は "%Iu" に変更するか、プラットフォームに依存するマクロに変更します)。

0 投票する
1 に答える
296 参照

connection - libspotify が接続しない

私は libspotify に慣れようとしていますが、libspotify に関するドキュメントが非常に不足していると言わざるを得ません。例から小さなアプリをハックしましたが、動作させることができません。

Visual Studio 2012 で C コンソール アプリケーションを構築しています。appkey は正しいです。

ユーザー名とパスワードが (偽または正しい) に関係なく、sp_session_login は常に SP_ERROR_OK を返します。sp_session_connectionstate で接続状態を確認すると、常に SP_CONNECTION_STATE_LOGGED_OUT が返されます。

ここで何が間違っているのかわかりません。また、通常のチャネルを通じて関連する回答が見つからないようです。

0 投票する
1 に答える
539 参照

spotify - SpotifyAPIを使用してトップトラックと新しいリリースを見つける方法

Web APIからトップトラックと新しいリリースアルバム情報を取得するにはどうすればよいlibspotifyですか?試してみSPToplistましlibspotifyたが、うまくいきませんでした。

0 投票する
1 に答える
323 参照

spotify - Libspotify destruction procedure

I'm developing a libspotify wrapper for C# and am in the process of writing unit tests. As such, I need to repeatedly create sessions, log in, perform actions, log out, release and clean up the session, ready for the next test.

I'm unsure what the correct 'shutdown' procedure for libspotify is. The 'jukebox' example performs no shutdown at all - the main function just exits without calling sp_session_release.

For example, should I turn all callbacks off before releasing? At the moment I get a crash whenever I try to call sp_session_release.

Cheers Tom

0 投票する
1 に答える
178 参照

spotify - PySpotify で、プレイリスト内のトラックの位置を知らずにプレイリストからトラックを削除しようとしている

プレイリストからトラックを削除しようとしていますが、トラックについて知っている情報は、Spotify URI、トラックの名前、およびアーティストです。ただし、プレイリスト内のトラックの位置はわかりません。
トラックを削除する関数は次のとおりです: spotify.Playlists.remove_tracks(tracks) パラメータ: tracks (int のリスト) – プレイリストから削除するトラック位置のリスト

別のセッションで発生した可能性があるプレイリストにトラックを追加する場合を除いて、この情報を提供するコールバックまたはクラス メソッドは見つかりませんでした。
誰かがこれを成功させたことがありますか?

ありがとう

0 投票する
1 に答える
118 参照

interop - libspotifyのトラックの寿命

libspotifyを使用する場合、プレイリストを調べてトラックに関する情報を取得することにより、プレイリストの変更に関するコールバックに応答します。

トラックハンドルを取得すると、そのトラックハンドルはいつ無効になりますか?セッションでは、トラックハンドルの特定の値が常に同じトラックを参照すると想定できますか?確実にトラックの参照カウントを手動で増減する必要がありますか?

ありがとうトム

0 投票する
1 に答える
288 参照

cocoalibspotify-2.0 - CocoaLibSpotify を使用してプレイリストのモザイク画像を取得するにはどうすればよいですか?

そのプロパティSPPlaylistのヘッダードキュメントから:image

プレイリストのカスタム画像を返すnilか、プレイリストがまだロードされていないか、カスタム画像がない場合に返します

ロードされた配列がありますが、Spotify クライアントを介して同じプレイリストで 4 アップの画像を見ることができますが、各オブジェクトSPPlaylistsのプロパティは常にです。image nil

CocoaLibSpotify を使用してその 4 アップのカバー画像を簡単に取得する方法はありますか? それとも、すべてのトラックとアルバムのメタデータを読み込んで、関連するものを個別にプルバックする必要がありSPImagesますか?

0 投票する
1 に答える
169 参照

spotify - Libspotfiy プレイリスト フォルダの処理

Libspotify でのプレイリスト フォルダの処理について、いくつかの点を明確にしたいと思います。少し矛盾しているように見える点がいくつかあります (インプレッション フォルダの処理が後付けでハッキングされているように思います)。

コンテナー内のすべての再生リストを循環すると、すべてのフォルダーに対して同じ sp_playlist ハンドル値を取得していることに気付きました。これは、フォルダーに対して sp_playlist_xxx 関数を使用できないことを意味しますよね? だから私はそれらにコールバックを登録することはできません、それらの名前を見つけることができませんか?

代わりに、フォルダ名を取得するために PlaylistContainer で特別な関数を使用する必要がありますか?

フォルダを指すハンドルで sp_playlist_add_ref と sp_playlist_release を使用するのは危険ですか?

また、sp_playlistcontainer_playlist_folder_id 関数は何を対象としていますか?

0 投票する
1 に答える
49 参照

spotify - Libspotfiy、同じハンドルに複数のコールバックを登録する

libspotifyハンドルに複数のコールバックを追加することは有効ですか?すなわち:

すなわち

次に、tracks_addedAとtracks_addedBの両方がlibspotifyによって呼び出されますか?これは機能しているようですが、偶然に機能しているのか、設計上機能しているのかわかりません。:)