首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >itunes收听

itunes收听
EN

Stack Overflow用户
提问于 2011-04-05 05:38:20
回答 3查看 871关注 0票数 2

在windows live messenger中,可以共享当前正在收听的歌曲。我需要做些什么才能让它在c#中工作,比如libarys等在谷歌上找不到正确的文档。

EN

回答 3

Stack Overflow用户

发布于 2011-04-05 05:50:11

你需要使用iTunes SDK从.NET与iTunes进行交互,这就是你的谷歌搜索词。:)

这是一个开始:

  • http://blogs.msdn.com/b/noahc/archive/2006/07/06/automating-itunes-with-c-in-net.aspx
  • http://blogs.msdn.com/b/dancre/archive/2004/05/08/128645.aspx
票数 1
EN

Stack Overflow用户

发布于 2013-08-15 12:03:29

以下是C#中的LinqPad脚本,它可以按请求执行操作。(参见LinqPad.com)

奖金!图稿视图。

它看起来是这样的:

代码语言:javascript
复制
<Query Kind="Program">
  <Namespace>iTunesLib</Namespace>
  <Namespace>System.Security.Cryptography</Namespace>
</Query>

void Main()
{
  var track = new iTunesApp().CurrentTrack;

  if (track == null)
    "nothing playing".Dump();
  else
    new Viewer(track,true).Dump();
}

public class Viewer
{
  const string PREFIX = "itlps-";

  private IITFileOrCDTrack store;
  private bool materialize;

  public string album { get { return store.Album; } }
  public string band { get { return store.Artist; } }
  public string song { get { return store.Name; } }
  public string desc { get { return store.Description; } }
  public int? artCnt { get {
    if (store.Artwork == null) return null;
    else return store.Artwork.Count; }
  }

  public IEnumerable<ImageViewer> art { get {

    if (materialize)
    {
      foreach(var artT in store.Artwork)
      {
        var art = artT as IITArtwork;
        string ext = ".tmp";
        switch(art.Format)
        {
          case ITArtworkFormat.ITArtworkFormatBMP:
            ext = ".BMP";
            break;
          case ITArtworkFormat.ITArtworkFormatJPEG:
            ext = ".JPG";
            break;
          case ITArtworkFormat.ITArtworkFormatPNG:
            ext = ".PNG";
            break;
        }

        string path = Path.Combine(Path.GetTempPath(),PREFIX+Path.GetRandomFileName()+ext);

        art.SaveArtworkToFile(path);

        yield return new ImageViewer(path);
      }
    }
    yield break; }
  }

  public Viewer(IITFileOrCDTrack t,bool materializeArt = false)
  {
    store = t;
    materialize = materializeArt;
  }

  public Viewer(IITTrack t,bool materializeArt = false)
  {
    store = t as IITFileOrCDTrack;
    materialize = materializeArt;
  }

}

public class ImageViewer
{
  public string hash { get { return _hash.Value; } }
  static private string _path { get; set; }

  public object image { get { return _image.Value; } }

  static private SHA1Managed sha = new SHA1Managed();  

  private Lazy<object> _image = new Lazy<object>(() => {return Util.Image(_path);});
  private Lazy<string> _hash = new Lazy<string>(() =>
  {
    string hash = string.Empty;
    using (FileStream stream = File.OpenRead(_path))
    {
      byte [] checksum = sha.ComputeHash(stream);
      hash = BitConverter.ToString(checksum).Replace("-", string.Empty);
    }  
    return hash;
  });

  public ImageViewer(string path)
  {
    _path = path;
  }
}
票数 1
EN

Stack Overflow用户

发布于 2011-04-26 17:09:48

上次我检查过这个功能是开箱即用的,你需要做的就是安装itunes和windows live messenger,并激活"what im listening to“,它会在你的messenger状态中显示出来。如果您希望创建一个机器人,将此消息发送给一个不同的联系人,则需要为其编写一个脚本

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

https://stackoverflow.com/questions/5544662

复制
相关文章

相似问题

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