首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何捕捉itunes事件?

如何捕捉itunes事件?
EN

Stack Overflow用户
提问于 2009-08-06 03:46:38
回答 3查看 1.8K关注 0票数 3

我添加了以下代码

代码语言:javascript
复制
        iTunes.OnPlayerPlayingTrackChangedEvent += new _IiTunesEvents_OnPlayerPlayingTrackChangedEventEventHandler(iTunes_OnPlayerPlayingTrackChangedEvent);

这段代码

代码语言:javascript
复制
private void iTunes_OnPlayerPlayingTrackChangedEvent(object iTrack)
    {
        if (iTunes.CurrentTrack != null)
        {
            if (iTunes.CurrentTrack.Artist != null & iTunes.CurrentTrack.Album != null & iTunes.CurrentTrack.Name != null)
            {
                artist = iTunes.CurrentTrack.Artist;
                album = iTunes.CurrentTrack.Album;
                title = iTunes.CurrentTrack.Name;

                if (!NowPlaying.IsBusy)
                {
                    NowPlaying.RunWorkerAsync();
                }
            }
        }
    }

对于我的应用程序,这是用c#编程的,但是当歌曲改变时它不能捕捉到。我是不是遗漏了什么?

是否有其他方法可以捕获iTunes track changed事件?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-07 03:51:50

我想出了一个让它工作的方法。

首先,我添加了一个计时器

然后每隔1秒检查一次

代码语言:javascript
复制
try 
{
if (iTunes.CurrentTrack.Artist != artist | iTunes.CurrentTrack.Album != album | iTunes.CurrentTrack.Name != title)
{
 //Code to update UI here
}
}
catch
{
//Nothing Here! this is just so your the app doesn't blow up if iTunes is busy. instead it will just try again in 1 second
}

就是这样:)

票数 1
EN

Stack Overflow用户

发布于 2010-01-09 02:05:18

您实际上订阅了错误的事件来捕获此信息。

下面是一个代码片段,它将提供您想要的内容:

代码语言:javascript
复制
        iTunesApp app = new iTunesApp();

    public Form1()
    {
        InitializeComponent();
        app.OnPlayerPlayEvent += new _IiTunesEvents_OnPlayerPlayEventEventHandler(app_OnPlayerPlayEvent);   
    }

    public void app_OnPlayerPlayEvent(object iTrack)
    {
        IITTrack currentTrack = (IITTrack)iTrack;
        string trackName = currentTrack.Name;
        string artist = currentTrack.Artist;
        string album = currentTrack.Album;

    }
票数 5
EN

Stack Overflow用户

发布于 2009-08-16 16:12:46

你应该使用"or",而不是"and“。在您的代码中,它将仅在艺术家、专辑和歌曲名称发生更改时进行报告。这是你想要的吗?(因为如果我播放同一张专辑中的另一首歌曲,UI不会更新)。

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

https://stackoverflow.com/questions/1236869

复制
相关文章

相似问题

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