首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当identifyAlbumAsync()在audioProcessStart()之前被调用时,使用Mobile的应用程序崩溃

当identifyAlbumAsync()在audioProcessStart()之前被调用时,使用Mobile的应用程序崩溃
EN

Stack Overflow用户
提问于 2014-09-08 12:16:26
回答 2查看 97关注 0票数 0

我正在升级一个应用程序来使用新的,但是我注意到使用新的MusicID有点棘手。如果"identifyAlbumAsync“方法在"audioProcessStart”方法之前被执行(因为这需要在不同的线程中执行),那么应用程序就会崩溃。在Gracenote应用程序中,"audioProcessStart“方法一直在运行,因此不需要将其执行与"identifyAlbumAsync”方法调用同步。这是应该使用的方式吗?如果应用程序没有崩溃,至少在方法没有按顺序执行时是方便的。同样在我们的应用程序中,我们不希望"audioProcessStart“方法像在演示应用程序中所做的那样持续存在。我们只想运行"audioProcessStart“方法,当用户请求识别和当歌曲播放被识别时,我们希望通过调用"audioProcessStop”来停止音频处理。有什么简单的方法吗?现在,我们将在"identifyAlbumAsync“运行的线程中休眠2秒,以确保运行"audioProcessStart”方法的线程有时间执行。谢谢您的及时答复。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-10 20:24:48

谢谢你的反馈,在这个问题上你是对的。不幸的是,现在睡觉是最好的解决办法。但是我们在即将发布的版本中添加了对显式同步事件的支持,请继续关注。

票数 0
EN

Stack Overflow用户

发布于 2014-10-03 17:19:08

在即将发布的1.2版中,IGnMusicIdStreamEvents包含一个回调,信号音频处理已经启动,一个ID可以与此同步,例如:

代码语言:javascript
运行
复制
@Override
public void musicIdStreamProcessingStatusEvent( GnMusicIdStreamProcessingStatus status, IGnCancellable canceller ) {

    if (GnMusicIdStreamProcessingStatus.kStatusProcessingAudioStarted.compareTo(status) == 0) {
            try {
                    gnMusicIdStream.identifyAlbumAsync();

            } catch (GnException e) { }
        }

}   
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25724072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档