4

数週間前に Spotify アプリ API を使い始めました。

ボリュームを変えたかった。これは、ドキュメントに記載されているように、Player クラスのボリューム プロパティを使用して行う必要があります。

volume 現在の音量レベルを 0.0 ~ 1.0 の浮動小数点数で取得または設定します。

残念ながら、この音量プロパティは現在の音量を取得するためにのみ使用でき、音量を設定するためには使用できないことが判明しました。

そこで、情報を得るためにウェブを検索し始めました。スタック オーバーフロー1および2に関する 2 つの関連する投稿が見つかりました。

では、あなたが尋ねる他の 2 人の人と同じ質問を私は何をしますか。

さて、私は Spotify API をもう少し詳しく調べて、いくつかの有用な情報を見つけました。この投稿が Spotify 開発者の役に立てば幸いです。

また、stackoverflow は Spotify のバグ レポートを投稿する方法のようです。

それでは、私の Spotify アプリ API 調査に飛び込みましょう。これはすべて、インスペクターを使用して行われます。

volume プロパティは Player クラスで定義されます。Player クラスは models モジュールで定義されています。モデルを見てみましょう。このために、models.js ファイルを開きます (インスペクタの [スクリプト] タブで、ドロップダウン メニューから [models.js] を選択します)。最初にこれを見つけます(743行目):

* @property {number}      volume               Get or set the current volume level as a float between 0.0 and 1.0.

それでは、このボリューム プロパティを見てみましょう (models.js の 889 ~ 892 行目)。

volume: {
    get: sp.trackPlayer.getVolume,
    set: sp.trackPlayer.setVolume
},

Ok。これで、trackPlayer の setVolume メソッドを使用して音量を設定できるようになりました。深く掘り下げて、trackPlayer の中身を見てみましょう。これを行うには、コンソールに次のように入力します。

_getSpotifyModule("trackPlayer")

多くの関数を含むオブジェクトを返します。ここに小さなスナップショットがあります:

_getSpotifyModule("trackPlayer")
    Object
    ...
    getShuffle: function getShuffle() { [native code] }
    getVolume: function getVolume() { [native code] }
    playTrackFromContext: function playTrackFromContext() { [native code] }
    ...
    setShuffle: function setShuffle() { [native code] }
    skipToNextTrack: function skipToNextTrack() { [native code] }
    ...

関数 getVolume が定義されていることがわかりますか。しかし、関数 setVolume はそうではありません。

私の結論は次のとおりです。setVolume関数がtrackPlayerで定義されていないため、現時点ではPlayer.volumeを使用して音量を設定することはできません。

私の仕事が開発者がこの問題を解決するのに役立つことを願っています.


[1] で、IKenndac は次のように提案しました。

アプリが発生中の再生を開始した場合にのみ、音量を変更できます

しかし、これは間違っていることが判明したので、テストするために小さなアプリケーションを作成しました: https://gist.github.com/3152875

コンソールで次のコードを実行してみると、音量が変化しないことがわかります。

var sp = getSpotifyApi(1);
var models = sp.require('sp://import/scripts/api/models');
var views = sp.require('sp://import/scripts/api/views');
var player = models.player;

player.volume;
player.volume = 0.5;
player.volume;

[1] Spotify アプリ API で音量を変更 [2] https://stackoverflow.com/questions/11230630/change-volume-in-a-spotify-app

4

1 に答える 1

1

これは意図した動作です。ドキュメントに誤りがあり、修正されます。

于 2012-07-24T13:42:42.257 に答える