C++ linux下的Deezer本机API:无法创建简单应用程序
我试图创建一个简单的应用程序,它可以连接到deezer并播放单曲。我获得了访问令牌并编写了此程序。C++ linux下的Deezer本机API:无法创建简单应用程序,c++,linux,deezer,C++,Linux,Deezer,我试图创建一个简单的应用程序,它可以连接到deezer并播放单曲。我获得了访问令牌并编写了此程序。 目标计算机:linux x86_64 API版本:v1.0.1 #include <iostream> #include <deezer-api.h> #include <deezer-player.h> #define ACCESS_TOKEN "ACCESS TOKEN HERE" int main(int argc, char **argv) {
目标计算机:linux x86_64
API版本:v1.0.1
#include <iostream>
#include <deezer-api.h>
#include <deezer-player.h>
#define ACCESS_TOKEN "ACCESS TOKEN HERE"
int main(int argc, char **argv)
{
dz_connect_configuration cfg = {0};
cfg.app_id = "APP ID HERE";
cfg.product_id = "product_id";
cfg.product_build_id = "0.0.0";
dz_connect_handle dz_handle = dz_connect_new(&cfg);
if (dz_handle == nullptr)
{
return 100;
}
auto err_code = dz_connect_activate(dz_handle, nullptr);
if (err_code > DZ_ERROR_NO_ERROR_ASYNC)
{
return err_code;
}
err_code = dz_connect_set_access_token(dz_handle, nullptr, nullptr, ACCESS_TOKEN);
if (err_code > DZ_ERROR_NO_ERROR_ASYNC)
{
return err_code;
}
auto dz_player_handle = dz_player_new(dz_handle);
if (dz_player_handle == nullptr)
{
return 200;
}
err_code = dz_player_activate(dz_player_handle, nullptr);
if (err_code > DZ_ERROR_NO_ERROR_ASYNC)
{
return err_code;
}
err_code = dz_player_load(dz_player_handle, nullptr, nullptr, "dzmedia:///track/3135556");
if (err_code > DZ_ERROR_NO_ERROR_ASYNC)
{
return err_code;
}
err_code = dz_player_play(dz_player_handle, nullptr, nullptr, DZ_PLAYER_PLAY_CMD_START_TRACKLIST, DZ_TRACKLIST_AUTOPLAY_MANUAL, DZ_INDEX_IN_PLAYLIST_CURRENT);
if (err_code > DZ_ERROR_NO_ERROR_ASYNC)
{
return err_code;
}
std::cin.get();
return 0;
}
#包括
#包括
#包括
#定义访问令牌“此处访问令牌”
int main(int argc,字符**argv)
{
dz_connect_配置cfg={0};
cfg.app_id=“此处的app id”;
cfg.product_id=“product_id”;
cfg.product\u build\u id=“0.0.0”;
dz_connect_handle dz_handle=dz_connect_new(&cfg);
if(dz_handle==nullptr)
{
返回100;
}
自动错误代码=dz_连接激活(dz_手柄,空PTR);
如果(错误代码>DZ错误\u无错误\u异步)
{
返回错误代码;
}
err_code=dz_connect_set_access_token(dz_handle,nullptr,nullptr,access_token);
如果(错误代码>DZ错误\u无错误\u异步)
{
返回错误代码;
}
自动dz_播放器手柄=dz_播放器新(dz_手柄);
如果(dz_玩家_句柄==nullptr)
{
返回200;
}
err_code=dz_player_activate(dz_player_句柄,nullptr);
如果(错误代码>DZ错误\u无错误\u异步)
{
返回错误代码;
}
err_code=dz_player_load(dz_player_句柄,nullptr,nullptr,“dzmedia:///track/3135556");
如果(错误代码>DZ错误\u无错误\u异步)
{
返回错误代码;
}
err_code=dz_player_play(dz_player_handle,nullptr,nullptr,dz_player_play_CMD_START_TRACKLIST,dz_TRACKLIST_AUTOPLAY_MANUAL,dz_INDEX_IN_PLAYLIST_CURRENT);
如果(错误代码>DZ错误\u无错误\u异步)
{
返回错误代码;
}
std::cin.get();
返回0;
}
我突然遇到了问题。
第一次运行显示了以下输出:
398748:201417 dz_bufferevent:[dz_bufferevent_启动:561]无法打开/var/tmp/settings.dat
我创建了这个文件,但我怀疑它不应该是空的。
使用/var/tmp/settings.dat创建的第二次运行后,我得到以下输出:
399206:328658 dz_crash_handler:[dz_crash_handler_init:284]可用的崩溃处理程序399206:329404 dzcrashreport服务器磁盘:[dz_crashreport_服务器_url_on_read_数据:436]错误-打开失败错误:7
399206:329533 dzcrashreport服务器磁盘:[dz_crashreport_服务器_url_on_read_数据:436]错误-打开失败错误:7
399206:329590 dzcrashreport服务器磁盘:[dz_crashreport_服务器_url_on_read_数据:436]错误-打开失败错误:7
399206:329664 dzcrashreport服务器磁盘:[dz_crashreport_服务器_url_on_read_数据:436]错误-打开失败错误:7
399206:329726 dzcrashreport服务器磁盘:[dz_crashreport_服务器_url_on_read_数据:436]错误-打开失败错误:7
399206:329736 dzcrashreport发送方:[dz_崩溃报告_发送方_检索_服务器_url_关于_结果:213]错误-无法读取url服务器错误:0
399206:336505脉冲音频引擎:[dz_audioengine_set_output_gain:1184]未初始化
399206:336520脉冲音频引擎:[dz_audioengine_set_output_gain:1184]未初始化
399206:336577玩家:[dz玩家游戏许可证:1756]未知错误131079 我不明白,我做错了什么 更新:
Deezer原生API:v1.0.1-v00349200 还是不走运。尝试了不同版本的
“用户\u配置文件\u路径”
:
- 李>
- ./
- ./user-在工作目录中创建,具有777权限
- /var/tmp
[dz_崩溃_报告_发件人_检索_服务器_url_on_结果:213]错误-无法读取url服务器错误:0 在添加回调实现后,我看到了以下内容:
dz\u connect\u set\u access\u token
callbackdz\u activity\u operation\u callback
状态为dz\u ERROR\u connect\u SESSION\u OFFLINE\u MODE
dz_player_play
调用回调dz_player_onevent_cb
事件dz_player_event_PLAYLIST_TRACK_NO_RIGHT
“用户配置文件路径”
设置为有效路径。这是存储用户临时文件的地方。
当做
西里尔
更新:
以下几点提示也有帮助:
- 我搞错了,一个电话似乎不见了:
dz_连接缓存路径集(dz_句柄,NULL,NULL,)代码>
- 当前播放列表中的
DZ\u索引必须替换为
。我同意这一点并不明显0
- 检查您创建的访问令牌在调用
(cf:and)https://connect.deezer.com/oauth/auth.php?app_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URI&perms=basic_access,电子邮件,脱机访问
- 您没有调用
它实际上会触发本机SDK的登录过程dz_connect_offline_模式(…,false)
- 您没有等待
加载并播放曲目DZ_CONNECT_EVENT_USER_LOGIN_OK
西里尔谢谢你的回复,@cyrip。关于settings.dat:应用程序不创建/更新此文件。与root访问相同的问题。将
“user\u profile\u path”
设置为/
或/var/tmp/
不会改变任何事情,我遇到了同样的问题。这三个新点应该真的很有帮助。你确认你已经试过所有的方法了吗?如果您确认,我建议您发送电子邮件至deezerdevs@deezer