几周前我开始玩Spotify App API。
我想改变音量。这应该通过使用Player类的volume属性来完成,如documention:
中所述volume获取或设置当前音量级别为0.0到1.0之间的浮点数。
不幸的是,这个卷属性只能用于获取当前音量,而不能用于设置音量。
所以我开始在网上搜索一些信息。我在堆栈溢出1和2上找到了两个相关的帖子。
那么我可以问你和其他两个人一样的问题。
好吧,我已经深入了解Spotify API并找到了一些有用的信息。我希望这篇文章能够帮助Spotify开发者。
此外,stackoverflow似乎是发布Spotify错误报告的方法。
让我们跳进我的Spotify App API调查。所有这些都是通过使用Inspector来完成的。
volume属性在Player类中定义。 Player类在models模块中定义。因此,让我们看一下模型,为此我们打开文件models.js(检查器中的“Scripts”选项卡,在下拉菜单中选择“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
},
确定。现在我们现在可以使用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不是。
所以这是我的结论:截至目前,由于未在trackPlayer中定义setVolume函数,因此无法使用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] Change volume with spotify App API [2] https://stackoverflow.com/questions/11230630/change-volume-in-a-spotify-app
答案 0 :(得分:1)
这是预期的行为。文档有问题,将予以纠正。