几周前,我开始使用Spotify应用程序API。
我想改变音量。这应该通过使用Player类的音量属性来完成,如文件化中所述。
卷获取或将当前卷级别设置为0.0到1.0之间的浮点数。
不幸的是,该卷属性只能用于获取当前卷,而不能用于设置卷。
所以我开始在网上搜索一些信息。我在堆栈溢出1和2上找到了两个相关的帖子。
那么,我问的问题和你可能问的其他两个人相同的问题是什么?
嗯,我已经深入到Spotify API中,并找到了一些有用的信息。我希望这篇文章能帮助Spotify开发者。
此外,堆栈溢出似乎是为Spotify发布bug报告的方法。
因此,让我们跳到我的Spotify应用程序API调查。所有这些都是通过使用检查专员来完成的。
卷属性是在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.那么,让我们看看这个卷属性(models.js中的第889-892行):
volume: {
get: sp.trackPlayer.getVolume,
set: sp.trackPlayer.setVolume
},好的。现在我们可以通过在setVolume中使用trackPlayer方法来设置卷了。让我们深入了解一下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中定义。
我希望我的工作能帮助开发者解决这个问题。
在第一章中,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;发布于 2012-07-24 13:42:42
这就是预期的行为。文件有问题,将予以纠正。
https://stackoverflow.com/questions/11628478
复制相似问题