2012-07-24 49 views
3

我幾周前開始使用Spotify應用程序API進行遊戲。Spotify App API錯誤報告:播放器音量無法設置爲值

我想更改音量。這應該通過使用播放器類的體積屬性來完成,如在documention指出:

體積設置或者獲取當前音量級別爲0.0和1.0之間的浮動。

不幸的是,事實證明,這個音量屬性只能用於獲取當前音量,而不能設置音量。

所以我開始在網上搜索一些信息。我發現棧溢出12兩個相關的帖子。

那麼,我會問你同樣的問題,你可能會問另外兩個人。

好吧,我已經深入瞭解了Spotify API並發現了一些有用的信息。我希望這篇文章能夠幫助Spotify開發者。

另外,stackoverflow似乎是去發佈Spotify錯誤報告的方式。

因此,我們來看看我的Spotify應用程序API調查。所有這些都是通過使用Inspector完成的。

volume屬性在Player類中定義。 Player類在模型模塊中定義。因此,讓我們看看模型,爲此我們打開文件models.js(檢查器中的「腳本」選項卡,在下拉菜單中選擇「models.js」)。我們先找到這個(行743):

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

因此,讓我們來看看這個volume屬性,然後(線889-892在models.js):

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

確定。所以現在我們現在可以通過使用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不是。

因此,這裏是我的結論:截至目前無法使用Player.volume設置音量,因爲setVolume函數未在trackPlayer中定義。

我希望我的工作能夠幫助開發人員解決這個問題。


在文獻[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] Change volume with spotify App API [2] https://stackoverflow.com/questions/11230630/change-volume-in-a-spotify-app

回答

1

這是預期的行爲。文檔有問題並且會被糾正。