【问题标题】:Libspotify destruction procedureLibspotify 销毁程序
【发布时间】:2013-01-16 02:11:55
【问题描述】:

我正在为 C# 开发一个 libspotify 包装器,并且正在编写单元测试。因此,我需要反复创建会话、登录、执行操作、注销、释放和清理会话,为下一次测试做好准备。

我不确定 libspotify 的正确“关闭”程序是什么。 'jukebox' 示例根本不执行任何关闭 - 主函数只是退出而不调用 sp_session_release。

例如,我应该在释放之前关闭所有回调吗?目前,每当我尝试调用 sp_session_release 时都会崩溃。

干杯 汤姆

【问题讨论】:

  • 如果您有兴趣,我在过去几周一直在做同样的事情(编写 C# libspotify 包装器)。也许其中一些会有用?看看:github.com/openhome/ohLibSpotify 不过,恐怕我还没有尝试过在一个进程中一遍又一遍地创建然后销毁会话。

标签: spotify libspotify


【解决方案1】:

目前(这是一种非常糟糕的形式),libspotify 仅支持“每个进程一个 sp_session 实例”,并且正如您所见,它在发布时不可靠。理论上,在注销后释放会话(并等待注销回调)应该没问题,但我们看到了一些可靠性问题,如您所见。

我们自己的内部 libspotify 单元测试为每个测试创建一个进程,以真正确保状态已重置,这就是为什么我们在 libspotify 12 中忽略了这个问题。

CocoaLibSpotify 的单元测试在一个进程中运行所有测试,但不要在它们之间注销等。

【讨论】:

  • 这对我来说仍然很困难。我正在使用 NUnit,我的日志记录表明每次测试运行都会创建一个新进程。但是,在成功的测试运行之后,后续的测试运行总是失败,当我尝试创建新会话时会抛出异常。当我运行我的真实应用程序时,这从未发生过,所以它可能也暗示了 Nunit 的一些问题。我可以每个会话一个实例,只要我可以可靠地关闭和创建会话。
猜你喜欢
  • 1970-01-01
  • 2017-09-07
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多