将来自多个客户机的媒体内容集合到服务器转让专利

申请号 : CN200880131434.8

文献号 : CN102171717B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : J·D·戈德曼A·J·埃尔南德斯A·O·巴克纳W·G·麦科洛姆

申请人 : 惠普发展公司有限责任合伙企业

摘要 :

一种数据处理系统把媒体内容从多个客户机集合到服务器。数据处理系统包括媒体管理器,所述媒体管理器把来自多个客户机中的一个客户机的媒体内容集合到服务器上。媒体管理器包括监视设施和服务器媒体更新设施。监视设施周期性地检查新添加在多个客户机的客户机库中的和/或从客户机存储装置扫描的媒体文件,并且检测新添加的媒体。服务器媒体更新设施判定服务器上是否存在新添加的媒体,并且如果服务器上不存在新添加的媒体或服务器上存在较低质量版本的新添加的媒体,则把新添加的媒体复制到服务器上。

权利要求 :

1.一种用于处理媒体内容的方法,包括:把来自多个客户机中的一个客户机的媒体内容集合到服务器上,包括:周期性地检查新添加到客户机库中的媒体或从多个客户机的客户机存储器中扫描的媒体;

检测新添加的媒体;

判定服务器上是否存在新添加的媒体;

如果服务器上不存在新添加的媒体或服务器上存在新添加的媒体的较低质量版本,则把新添加的媒体复制到服务器上,其中所述方法进一步包括:在客户机上运行集合同步动作,包括:对于活动用户的媒体,分析客户机库和/或扫描的存储装置;

根据该分析来建立客户机播放列表的列表,播放列表包括媒体内容的名称和列表;

装载服务器库,从而在服务器上保持所有媒体内容的服务器媒体列表;

检索服务器上当前的播放列表的列表;

对于客户机播放列表的列表中的每个播放列表,把播放列表添加到复制列表中,除非服务器播放列表上存在客户机播放列表,并且客户机播放列表和服务器播放列表是相同的;

对于服务器播放列表的列表中的每个播放列表,把播放列表添加到删除列表中,除非复制列表具有与该播放列表对应的客户机播放列表;

对于删除列表中的每个播放列表,从服务器中删除播放列表;

对于复制列表中的每个播放列表,把播放列表写入服务器;以及写入服务器库。

2.如权利要求1所述的方法,其特征在于,所述在客户机上运行集合同步动作进一步包括:根据该分析来建立客户机媒体内容的主列表;以及对于在客户机媒体内容的主列表中的每个媒体文件,把媒体文件复制到服务器,除非该媒体文件已经在服务器媒体内容列表中并且具有比服务器媒体列表中的媒体文件更低的质量版本,并且把媒体文件添加到服务器库中。

3.如权利要求1所述的方法,其特征在于,还包括:集合多个客户机上的媒体内容,包括:

读出用于列出媒体文件和播放列表的用户的客户机库。

4.如权利要求1所述的方法,其特征在于,还包括:集合多个客户机上的媒体内容,包括:

扫描计算机上的内容。

5.如权利要求1所述的方法,其特征在于,还包括:同步所述服务器,包括:

判定服务器上的媒体文件的存在性;

如果不存在媒体文件,则创建用于列出被装载到服务器上的媒体和播放列表的媒体文件;

对于丢失的媒体或质量版本比来自客户机的媒体要低的媒体,把来自客户机的媒体复制到服务器;以及保存所述媒体文件。

6.如权利要求1所述的方法,其特征在于,还包括:把来自多个客户机中的所述客户机的播放列表集合到服务器上,包括:对于服务器上不存在的、存在于客户机库中和/或从客户机存储装置中扫描的播放列表,把客户机播放列表复制到服务器;

对于客户机库中不存在和/或从客户机存储装置中扫描的、存在于服务器中的播放列表,从服务器中删除播放列表;

对于存在于服务器上和客户机库中和/或从客户机存储装置中扫描的播放列表,判定服务器上和客户机库中和/或从客户机存储装置中扫描的播放列表内容是否是不同的;以及如果服务器上和客户机库中和/或从客户机存储装置中扫描的播放列表内容是不同的,则把来自客户机库和/或从客户机存储装置中扫描的播放列表内容复制到服务器。

7.如权利要求2所述的方法,其特征在于,建立客户机媒体内容的主列表包括:通过为各个媒体文件设置识别符和文件名来建立客户机媒体内容的主列表;并且其中所述方法在所述写入服务器库之后进一步包括:通过把客户机播放列表的列表中的每个播放列表添加到与客户机相关联的播放列表的列表中而顺序通过客户机播放列表的列表。

8.如权利要求1所述的方法,其特征在于,对于客户机播放列表的列表中的每个播放列表:判定服务器播放列表中是否存在播放列表;

如果服务器播放列表中存在播放列表:

则对客户机播放列表内容与服务器播放列表进行比较;

如果客户机和服务器播放列表是不同的,则将客户机播放列表添加到复制列表;以及如果客户机和服务器播放列表是不同的,则将在与客户机播放列表对应的服务器播放列表中的播放列表标记成保持器;

如果服务器播放列表中不存在播放列表:

则把客户机播放列表添加到复制列表中。

9.如权利要求8所述的方法,其特征在于,对于服务器播放列表的列表中的每个播放列表:如果服务器播放列表不具有保持器设置,则把播放列表添加到删除列表中。

10.如权利要求2所述的方法,其特征在于,对于客户机媒体内容的主列表中的每个媒体文件:如果媒体文件是在服务器媒体文件列表中:则如果媒体文件的客户机日期戳比服务器日期戳更新,则判定目的地并且把媒体文件从客户机复制到目的地;

如果媒体文件不在服务器媒体文件列表中:则判定目的地,把媒体文件从客户机复制到目的地,并且把媒体文件添加到服务器库中。

11.如权利要求1所述的方法,其特征在于,对于复制列表中的每个播放列表:对于播放列表中的每个条目,判定条目的目的地并且修改到与条目名称对应的目的地的路径;以及把播放列表文件写入服务器。

12.如权利要求1所述的方法,其特征在于,还包括:把媒体文件从客户机迁移到服务器,包括:建立存在于用户音乐库中和/或从客户机上的存储装置中扫描的媒体文件的列表以及播放列表的列表;

建立存在于用户音乐库的服务器版本中的媒体文件的列表和播放列表的列表;

顺序通过多个客户机媒体文件中的每一个的客户机媒体文件,包括:读出客户机媒体文件的音乐标记;

根据音乐标记在服务器上创建客户机媒体文件的文件路径;

在媒体文件对象中保存媒体文件的文件路径;

为与客户机媒体文件匹配而搜索服务器媒体文件列表,其中具有经计算的服务器路径的媒体文件存在于服务器媒体文件列表中;

如果没有发生匹配,则把客户机媒体文件复制到在经计算的路径处的服务器,除非服务器上已经存在经计算的路径,并且把媒体文件添加到服务器媒体文件列表从而把媒体文件添加到用户的存储库;

如果客户机媒体文件的质量版本比匹配的服务器媒体文件更高,则把客户机媒体文件复制到经计算的路径处的服务器。

13.如权利要求12所述的方法,其特征在于,把媒体文件从客户机迁移到服务器还包括:对每个服务器播放列表作出标记以便删除;

顺序通过多个客户机播放列表中的每一个的客户机播放列表的列表,包括:判定客户机播放列表是否与现有的服务器播放列表匹配,其中名称匹配,并且媒体文件列表具有相同的长度以及以相同的次序包含相同的媒体文件;

对于匹配的情况,清除用于与客户机播放列表对应的服务器播放列表的条目的删除标记;

对于不匹配的情况,把客户机播放列表添加到复制播放列表的列表;

顺序通过多个服务器播放列表中的每一个的服务器播放列表的列表,包括:如果播放列表被标记为删除,则从服务器播放列表的列表中除去播放列表;

顺序通过多个复制播放列表中的每一个的复制播放列表的列表,包括:在服务器上以用户共享的方式创建播放列表文件;

对于复制播放列表中的每个条目,使用经计算的服务器路径写入引用;以及把复制播放列表添加到服务器播放列表的列表;以及用服务器媒体文件列表的当前版本和服务器播放列表的列表来更新服务器上的用户的音乐库。

14.一种用于处理媒体内容的设备,包括:把来自多个客户机中的一个客户机的媒体内容集合到服务器上的装置,包括:周期性地检查新添加到客户机库中的媒体或从多个客户机的客户机存储器中扫描的媒体的装置;

检测新添加的媒体的装置;

判定服务器上是否存在新添加的媒体的装置;

如果服务器上不存在新添加的媒体或服务器上存在新添加的媒体的较低质量版本,则把新添加的媒体复制到服务器上的装置,其中所述设备进一步包括:在客户机上运行集合同步动作的装置,包括:对于活动用户的媒体,分析客户机库和/或扫描的存储装置的装置;

根据该分析来建立客户机播放列表的列表的装置,播放列表包括媒体内容的名称和列表;

装载服务器库,从而在服务器上保持所有媒体内容的服务器媒体列表的装置;

检索服务器上当前的播放列表的列表的装置;

除非服务器播放列表上存在客户机播放列表,并且客户机播放列表和服务器播放列表是相同的,否则对于客户机播放列表的列表中的每个播放列表,把播放列表添加到复制列表中的装置;

除非复制列表具有与该播放列表对应的客户机播放列表,否则对于服务器播放列表的列表中的每个播放列表,把播放列表添加到删除列表中的装置;

对于删除列表中的每个播放列表,从服务器中删除播放列表的装置;

对于复制列表中的每个播放列表,把播放列表写入服务器的装置;以及写入服务器库的装置。

15.如权利要求14所述的设备,其特征在于,所述在客户机上运行集合同步动作的装置进一步包括:根据该分析来建立客户机媒体内容的主列表的装置;以及除非该媒体文件已经在服务器媒体内容列表中并且具有比服务器媒体列表中的媒体文件更低的质量版本,否则对于在客户机媒体内容的主列表中的每个媒体文件,把媒体文件复制到服务器,并且把媒体文件添加到服务器库中的装置。

说明书 :

将来自多个客户机的媒体内容集合到服务器

背景技术

[0001] 媒体中心或媒体库是一种用作家庭娱乐中心的应用。在一种典型的实施方式中,媒体中心能够对来自本地硬盘驱动器、光驱动器和网络位置的计算机用户图片、照片和音乐进行访问,并且能够通过名称、日期、标记和其它文件属性对媒体项目进行分类。可以经由家庭网络使通过媒体中心管理的媒体转发到标准电视机或音乐系统,诸如各种类型的高保真系统。
[0002] 通过手动技术,使用基于用户互动的动作,来管理典型的媒体配置。用户可以把媒体内容文件移动到服务器,服务器可以识别该内容。在一个特定的例子中,用户可以采用对于用户是特定的iTunes库,并且把该库移动到服务器,服务器运行诸如数字音频接入协议(例如,MT-DAAP)的应用程序,这使服务器的作用如同iTunes服务器,一种实际只为单个用户工作的简单的情况。
[0003] 在另一个例子中,用户可以把媒体文件简单地移动到服务器,并且把MT-DAAP引导到一个位置以便寻找歌曲的集合。对于多个用户,手动地移动每个用户的文件集合,并且如果用户决定存储分开在不同文件夹中的每个用户的集合,则以任何方式都不能解决存储和信息冗余。手动媒体合并具有风险。仅基于文件名称的合并是不足够的,因为如此的技术不保证媒体文件包含相同的内容。
[0004] 使用典型的技术把播放列表迁移到服务器要求手动修改以能够按与诸如照相簿之类的其它文件组相似的方式来引用服务器上新媒体文件位置。

发明内容

[0005] 数据处理系统的实施例把来自多个客户机的媒体内容集合到服务器。数据处理系统包括媒体管理器,媒体管理器把来自多个客户机中的一个客户机的媒体内容集合到服务器。媒体管理器包括监视设施和服务器媒体更新设施。监视设施周期性地检查新添加到多个客户机的客户机库中的媒体文件和/或从客户机存储器扫描的媒体文件。服务器媒体更新设施确定服务器上是否存在新添加的媒体,并且如果服务器上不存在新添加的媒体或服务器上存在新添加的媒体的较低质量的版本,则把新添加的媒体复制到服务器上。

附图说明

[0006] 通过参考下列说明书和附图可以较佳地理解涉及结构和工作方法两方面的本发明的实施例:
[0007] 图1A、1B和1C是示意性方框图,示出数据处理系统的实施例,所述数据处理系统把来自多个客户机的媒体内容集合到服务器;
[0008] 图2是示意性方框图,描绘网络数据处理系统的实施例,所述网络数据处理系统把来自多个客户机的媒体内容集合到服务器;
[0009] 图3A到3G是流程图,示出计算机执行的方法的一个或多个实施例或方面,用于把来自多个客户机的媒体内容集合到服务器;
[0010] 图4A和4B是流程图,示出计算机执行的方法的一个或多个实施例或方面,用于处理媒体内容和迁移媒体文件;
[0011] 图5是示意性方框图,描绘媒体集合系统的实施例;以及
[0012] 图6A到6F是流程图,示出计算机执行的方法的一个或多个实施例或方面,用于执行关于客户机的集合同步。

具体实施方式

[0013] 当把来自多个客户机和用户的媒体数据集合到单个服务器时,这里揭示的系统和方法的实施例合并了媒体数据。
[0014] 例如,媒体适应服务器使一个家用服务器的一个家庭中的多个用户能集合来自多个用户和/或客户机系统的媒体数据。把所集合的媒体数据存储在服务器上,使用户能在所管理的组或家中访问。
[0015] 揭示了各种系统和技术,这些系统和技术用于组织和合并媒体文件,以致减少了存储空间或使存储空间最小化,并且使用户的冗余内容的视觉“唠叨”最小化。
[0016] 在一个示例性应用中,在一个家庭中可以有含媒体文件(诸如音乐或视频)的数台个人计算机(PC)。在家庭中的多个用户可以访问媒体文件。可以在数台PC上存储相同的媒体文件。在单个PC上,多个用户可能每个都引用诸如iTunes的媒体库中的相同的媒体源文件,例如,音轨文件。媒体库可以是要集合到服务器上的媒体文件和播放列表的源,或可以从客户机或用户计算机或系统对媒体进行扫描。
[0017] 一种考虑是:将来自不同用户的媒体库的内容集合到一起的简单方法可以导致相同的媒体文件的多个复制品累积在服务器上并塞满该服务器。更需关心的重点是:浏览服务器的用户发现确切相同的媒体文件的多个复制品,视觉冗余会使用户不想再尝试寻找和选择需要的内容。
[0018] 所示出的系统和技术致力于数个技术考虑。在映射到相同特定文件的媒体库中合并媒体文件引用。识别以及合并涉及相同内容的媒体文件,考虑相同媒体的不同文件(例如,音轨)可以具有不同的质量水平,例如,音频质量。在合并媒体文件和把文件移动到服务器之后,所描绘的系统和技术能够管理和维护播放列表内容(例如,媒体文件引用)。此外,服务器使用户能减少对特定用户文件的媒体内容的观看。
[0019] 参考图1A,示意性方框图示出数据处理系统100的实施例,所述数据处理系统100把来自多个客户机104的媒体内容集合到服务器102上。数据处理系统100包括媒体管理器106,媒体管理器106把来自多个客户机104中的一个客户机的媒体内容集合到服务器102上。媒体管理器106包括监视设施108和服务器媒体更新设施110。监视设施108周期性地检查新添加到多个客户机104的客户机库114的和/或从客户机存储器116扫描的媒体文件112,并且检测新添加的媒体118。服务器媒体更新设施110判定服务器102上是否存在新添加的媒体118,如果服务器102上不存在新添加的媒体118或服务器102上存在新添加的媒体的较低质量版本,则把新添加的媒体118复制到服务器102上。
[0020] 在示出的实施例中,媒体管理器106是可在多个客户机中的客户机处执行的。
[0021] 数字媒体适配器(DMA)120(诸如Roku SoundBridge)可以连接到服务器102以便访问经集合的数据。
[0022] 参考图1B,示意性方框图示出数据处理系统100B的一个实施例,数据处理系统100B把来自多个客户机104的媒体内容集合到服务器102上,其中媒体管理器106是可在服务器102上执行的。
[0023] 参考图1C,示意性方框图描绘数据处理系统100C的一个实施例,数据处理系统100C把来自多个客户机104的媒体内容集合到服务器102上,其中媒体管理器106是可在多个客户机104中的客户机112上部分地执行的以及在服务器102上部分地执行的。
[0024] 参考图2,示意性方框图示出网络数据处理系统200的一个实施例,网络数据处理系统200把来自多个客户机204的媒体内容集合到服务器202上。网络数据处理系统200包括网络230、耦合到网络230的服务器202、以及耦合到网络230的一个或多个客户机204。配置服务器202和一个或多个客户机204以运行媒体管理器206。
[0025] 参考图3A到3G,这些流程图示出用于把来自多个客户机的媒体内容集合到服务器上的计算机可执行的方法的一个或多个实施例或方面。图3A描绘用于处理媒体内容的计算机可执行的方法(300),包括把来自多个客户机中的一个客户机的媒体内容集合到服务器上(301)。集合媒体(301)包括周期性地检查新添加在客户机库中或从一个或多个客户机的存储器扫描的媒体(302)。当在客户机处检测到新添加的媒体时,判定了服务器上存在相应的新添加的媒体(303)。如果服务器上不存在新添加的媒体(304),则把新添加的媒体复制到服务器(305)。如果服务器上存在新添加的媒体(304),则判定新添加的媒体是否具有比服务器上的媒体更高质量的版本(306)。如果新添加的媒体具有更高质量版本(307),则把更高质量版本媒体复制到服务器(308)。版本的质量可以基于各种考虑。例如,可以考虑较新的版本具有更高的质量。相似地,根据位速率或其它戳(indicia),版本的保真度可以具有更高的质量。例如,更高的位速率版本可以替换较低的位速率版本。
[0026] 在一些情况中或在一些实施方式中,集合多个客户机处的媒体内容包括读出用户的客户机库,所述用户的客户机库列出媒体文件和播放列表。播放列表是对各种媒体播放器软件程序进行组织的基础,所述媒体播放器软件程序用于组织和管理个人计算机上的音乐。可以定义、存储和选择播放列表以便按顺序运行,或如果选择随机播放列表功能,则按随机的次序来运行。播放列表能够创建和维护具有有限的用户互动的所要求的音乐氛围。
[0027] 在一些情况中或在一些实施方式中,集合多个客户机处的媒体内容包括对计算机上,例如,来自诸如盘存储装置、光盘-只读存储器(CD-ROM)、数字多功能盘(DVD)、存储装置的其它形式之类的存储装置和/或存储器的内容进行扫描。
[0028] 参考图3B,用于同步服务器的计算机可执行的方法(310)包括判定服务器上媒体文件的存在(311)。如果媒体文件不存在(312),则创建装载到服务器上的、列出媒体和播放列表的媒体文件(313)。对于丢失的媒体或质量版本比来自客户机的媒体较低的媒体,方法(310)还包括把来自客户机的媒体复制到服务器(314),并且保存媒体文件(315)。
[0029] 参考图3C,在一些实施例中,用于处理媒体内容的计算机可执行的方法的一个方面(320)可以包括把来自多个客户机中的该客户机的静态的、用户创建的播放列表集合到服务器上(321),包括客户机库中存在的播放列表和/或从不存在于服务器上的、从客户机存储装置扫描的播放列表(322),把客户机播放列表复制到服务器上(323)。对于不存在于客户机库中或从客户机存储装置扫描的、存在于服务器上的播放列表(324),从服务器删除播放列表(325)。对于存在于服务器上和在客户机库中和/或从客户机存储装置扫描的播放列表(326),判定播放列表内容是否与服务器上的和客户机库中的播放列表内容不同(327)。如果服务器上的和客户机库和/或从客户机存储装置扫描的播放列表内容是不同的(327),则把来自客户机库和/或从客户机存储装置扫描的播放列表内容复制到服务器(328)。
[0030] 参考图3D,在一些实施例中,用于处理媒体内容的计算机可执行的方法的一个方面(330)可以包括在客户机处运行集合同步动作(331),包括分析活动用户的媒体的客户机库和/或扫描的存储装置(333),并且根据分析建立客户机播放列表的列表以及客户机媒体内容的主列表(333)。播放列表包括名称和媒体内容列表。用于运行集合同步动作(331)的方法还包括装载服务器库使之在服务器上保持所有媒体内容的服务器媒体列表(334),并且检索服务器上当前的播放列表(335)。对于在客户机播放列表的列表中的每个播放列表(336),把播放列表添加到复制列表(338),除非在服务器播放列表上存在客户机播放列表,并且客户机播放列表和服务器播放列表是相同的(337)。对于服务器播放列表的列表中的每个播放列表(339),添加播放列表以删除列表(341),除非复制列表具有与播放列表对应的客户机播放列表(340)。对于在客户机媒体内容的主列表中的每个媒体文件(342),把媒体文件复制到服务器(344),除非媒体文件已经在服务器媒体内容列表中,并且质量版本比服务器媒体列表中的媒体文件较低(343),以及把媒体文件添加到服务器库中(345)。对于在删除列表中的每个播放列表(346),从服务器删除播放列表(347)。对于复制列表中的每个播放列表(348),把播放列表写入服务器(349)。然后写入服务器库(350)。
[0031] 参考图3E,在一些实施例中,用于处理媒体内容的计算机可执行的方法的一个方面(360)可以包括建立客户机播放列表的列表以及客户机媒体内容的主列表(361),包括通过设置各个媒体文件的识别符和文件名称(363)来建立客户机媒体内容的主列表(362)。所述方法(360)还包括通过把用户创建的客户机播放列表的列表中的每个播放列表添加到播放列表中与客户机相关联的列表(365)而顺序通过用户创建的客户机播放列表的列表(364)。
[0032] 参考图3F,在一些实施例中,用于处理播放列表媒体内容的计算机可执行的方法的一个方面(370)致力于播放列表的处理。对于客户机播放列表的列表中的每个播放列表(371),计算机可执行的方法(370)可以包括判定服务器播放列表上是否存在播放列表(372)。如果服务器播放列表上存在播放列表(373),则对客户机播放列表内容与服务器播放列表进行比较(374)。如果客户机和服务器播放列表是不同的(375),则把客户机播放列表添加到复制列表(376)。如果客户机和服务器播放列表不是不同的(375),则对应于作为保持器的客户机播放列表而对服务器播放列表中的播放列表作出标记(377)。如果服务器播放列表上不存在播放列表(373),则把客户机播放列表添加到复制列表中(378)。
[0033] 在一些实施例中,对于服务器播放列表的列表中的每个播放列表(381),如果服务器播放列表没有保持器设置(382),则可以添加播放列表以删除列表(383)。
[0034] 在一些实施例中,对于复制列表中的每个播放列表(384)和对于播放列表中的每个条目(385),判定条目的目的地(386),并且修改到对应于条目名称的目的地的路径(387)。对于复制列表中的每个播放列表(384),把播放列表文件写入服务器(388)。
[0035] 参考图3G,在一些实施例中,用于处理播放列表媒体内容的计算机可执行的方法的一个方面(390)致力于媒体文件的处理。对于客户机媒体文件的列表中的每个媒体文件(391),如果媒体文件在服务器媒体文件列表中(392)并且媒体文件的客户机日期戳要比服务器日期戳新(393),则判定目的地(394),并且把媒体文件从客户机复制到目的地。如果媒体文件不在服务器媒体文件列表中(392),则判定目的地(394),把媒体文件从客户机复制到目的地(395),并且把媒体文件添加到服务器库中(396)。
[0036] 参考图4A和4B,这些流程图示出用于处理媒体内容的计算机可执行的方法(400)的一个或多个实施例或方面。在一个示例性实施方式中,服务器可以具有共享的音乐文件夹(例如,\\server\Music\)以及每个用户的共享文件夹(诸如\\server\Users\user name)两者。使用共享的音乐文件夹来存储媒体文件,例如通过艺术家组织在文件夹中的音轨以及专辑名称。因此,可以在\\server\Music\Beatles\Revolver\下存储Beatles的“Revolver”的音轨。用户共享文件夹包括Music(音乐)子目录,其中与个人播放列表一起存储了音乐库文件。
[0037] 可以通过把在用户媒体库(例如,iTunes的“iTunes Music Library.xml”文件)中引用的音轨复制到服务器而执行从客户机计算机把用户媒体数据迁移到服务器,把用户播放列表复制到服务器,并且更新服务器上用户的媒体库以反映出复制操作。同时,解析重复媒体文件,并且在\\server\Music下仅把单个复制品复制到全球音轨库。
[0038] 媒体文件通常具有嵌入在媒体文件中的某个标记信息,该标记信息识别关于音轨的元信息。例如,在MP3文件中使用ID3v2.2标记。标记表示过程使用的艺术家和专辑信息。
[0039] 图4A示出用于把媒体文件从客户机迁移到服务器的计算机可执行的方法(401),包括建立媒体文件的列表以及播放列表的列表(402),这些列表存在于用户音乐库和/或从客户机处的存储装置的扫描可以对这些列表进行访问(402),建立存在于用户音乐库的服务器版本中的媒体文件的列表和播放列表的列表(403),并且对多个客户机媒体文件的每一个,顺序通过客户机媒体文件列表(404)。顺序通过客户机媒体文件列表(404)包括读出客户机媒体文件的标记(405),根据标记为客户机媒体文件创建服务器上的文件路径(406),把媒体文件的文件路径保存在媒体文件对象中(407),以及搜索服务器媒体文件列表以便与客户机媒体文件匹配(408),其中在服务器媒体文件列表中存在具有经计算的服务器路径的媒体文件。例如,在存储音乐文件的一个系统中,读出客户机媒体文件以访问诸如艺术家和专辑标记之类的音乐标记(405),对于音轨对象中的音轨,保存经计算的服务器路径(407),并且搜索服务器音轨列表(408)以便与客户机音轨(例如,存在于服务器音轨列表中的具有经计算的服务器音轨的一个音轨)匹配。
[0040] 如果没有发生匹配(409),则把客户机媒体文件复制到在经计算的路径处的服务器,除非在服务器上已经存在经计算的路径(410),并且把媒体文件添加到服务器媒体文件列表(412)从而把媒体文件添加到用户的存储库(413)。如果客户机媒体文件的质量版本比匹配服务器媒体文件更高(414),则把客户机媒体文件复制到在经计算的路径处的服务器。
[0041] 对于音乐系统的例子,无需匹配(409),如果服务器在经计算的路径处已经具有一个文件,但是客户机文件具有更高的质量,然后把客户机文件复制到经计算的路径处的服务器。如果服务器不是已经具有了一个文件(410),则把客户机文件复制到经计算的路径处的服务器。把音轨添加到服务器音轨列表以致在用户的服务器库中输入了音轨(413)。如果客户机音轨的质量比匹配服务器音轨更高(414),则把客户机文件复制到经计算的路径处的服务器。
[0042] 参考图4B,用于把媒体文件从客户机迁移到服务器(421)的计算机可执行的方法(420)还包括对每个服务器播放列表作出标记(422),以便,例如,通过设置删除标志而进行删除,并且对于多个客户机播放列表中的每一个,顺序通过客户机播放列表的列表(423)。顺序通过客户机播放列表的列表(423)包括判定客户机播放列表是否与现有的服务器播放列表匹配,其中名称匹配,并且媒体文件列表具有相同长度和包含相同次序的相同媒体文件。在音乐系统应用中,当名称匹配和音轨列表具有相同长度以及包含相同次序的相同音轨时,播放列表与现有的服务器播放列表匹配。对于匹配(425),对与客户机播放列表对应的服务器播放列表的一个条目,清除删除标志(426)。对于不匹配(425),把客户机播放列表添加到复制列表的列表。把媒体文件从客户机迁移到服务器(421)还包括对于多个服务器播放列表的每一个,顺序通过服务器播放列表的列表(428)。顺序通过服务器播放列表的列表(428)包括:如果把播放列表标记为删除(429),则从服务器播放列表的列表除去播放列表(430)。把媒体文件从客户机迁移到服务器(421)还包括对于多个复制列表的每一个顺序通过复制列表的列表(431)。顺序通过复制列表的列表(431)包括在服务器上用户的共享中创建播放列表文件(432)。服务器上的示例性播放列表文件可以是\\server\Users\user name\playlist.m3u。对于复制播放列表中的每个条目(431),使用经计算的服务器路径写入引用(433)。把复制播放列表添加到服务器播放列表的列表(434),并且用服务器媒体文件列表和服务器播放列表的列表的当前版本更新服务器上的用户的音乐库(435)。
[0043] 对于一个音轨来说,音乐媒体的示例性数据结构可以包括文件名称、用于把文件放置在服务器上的文件路径以及用于把文件放置在客户机处的原始文件路径。
[0044] 播放列表的数据结构可以包括播放列表名称、一般只用于服务器播放列表的删除标志以及音轨对象的列表。
[0045] 所示出的方法使服务器上媒体文件的全球观看成为可能,其中使盘空间最优化,因为重复文件并不共存。更具体地,在全球观看时,即使多个用户具有与用户库相关联的相同媒体文件,不管是否在相同的客户机处,用户看不到任何重复条目。
[0046] 参考图5,示意性方框图描绘媒体集合系统500的一个实施例。所示出的例子使数字媒体播放器530的iTunes的媒体集合成为可能,可从Apple公司得到数字媒体播放器530,用于播放和组织数字音乐和视频文件。所示出的系统包括一个特征:从客户机系统504接收iTunes媒体文件512和播放列表522,并且把文件和播放列表复制到服务器502。
因此启动了MT-DAAP/Firefly对来自MediaSmart服务器的文件进行服务。可以执行该特征的程序代码作为客户机系统504上的服务524,周期性地检查新文件518,并且当检测到时复制新文件518。
[0047] 在一个示例性配置中,用户可以使用MediaSmart服务器控制中心526来配置iTunes集合。用户可以启动媒体集合,规定鉴定信息以及选择多久执行一次集合,例如,在从每五分钟到每周一次的范围内,或其它合适的频率。在配置期间,同步代码可以从注册表(registry)528得到服务器名称。
[0048] 在一个示例性文件互动中,在客户机侧504处,代码可以读出用户的iTunes 库 文 件,“Documents and Settings”\\“My Documents”\“My Music”\“iTunes”\“iTunes Music Library.xml”。可扩展标记语言(XML)文件列出iTunes可以执行的音轨和播放列表。在服务器侧502处,代码创建和维护文件,library.xml。文件列出已经装载到特定用户的服务器的音轨和播放列表。如果丢失了library.xml文件,则同步创建文件和执行假定当前用户的服务器上没有存储媒体的正常的同步,这会导致不需要地复制文件。如果library.xml文件是不同步的并且列出不存在的项目或应该存在但是丢失了的项目,则一旦同步运行时,library.xml文件就返回到同步。可以使用Samba(为选中的目录设置网络共享的网络化协议)来执行诸如library.xml这样与服务器502互动的文件访问、媒体文件同步等。
[0049] 在同步中,每次集合应用程序在客户机504处运行时可以执行操作。同步工作而使服务器502与用户的iTunes库514的内容同步。在一个示意性实施例中,只同步iTunes库514中的媒体。忽略其它文件。
[0050] 媒体集合系统500的一个示例性实施例可以执行音轨处理和播放列表处理。在音轨处理程序532中,如果在客户机iTunes库514中包含特定音轨但是服务器502上没有包含该特定音轨(具体地,不在library.xml文件中),则把音轨复制到服务器502中。如果服务器502上存在特定音轨,但是不存在于客户机iTunes库514中,则服务器502或客户机504没有变化。如果客户机iTunes库514和服务器502两者都存在特定音轨,则只在客户机版本具有较高质量时才复制音轨。概括地说,如果丢失了音轨,或其质量比客户机版本低,则把音轨复制到服务器502,并且永远不从服务器502中除去。
[0051] 可以把音轨存储在\\\Music\\\处。client_name是指经历同步的客户机系统的名称。“client path to track”是客户机系统上到音轨的完整路径,具有作为路径元素的驱动器字母,例如,\C\Documents and Settings\fahren\My Documents\My Music\user name)。如果在客户机系统上共享文件,例如,两个用户具有装载到与用户相关联的分立的库中的相同的音轨文件,则在服务器502上存储音轨文件的方法使服务器502共享音轨文件成为可能。在服务器502上存储单个文件而不是存在两个复制品。
[0052] 在播放列表处理程序534中,可以把集合限制于播放列表以致忽略了缺省播放列表(“90’s Music”、“Music”等)和智能播放列表。如果在客户机iTunes库514中定义播放列表,但是不存在于服务器502上,例如,不在library.xml文件中,则把播放列表复制到服务器502中。如果在服务器502上定义播放列表但是不存在于客户机iTunes库514中,则从服务器502删除播放列表。如果服务器502和客户机iTunes库514两者都存在播放列表,则如果播放列表内容与客户机504的不同,就把播放列表复制到服务器502上。概括地说,构成服务器502上的播放列表以反映客户机504上的当前播放列表组。
[0053] 可以把播放列表作为m3u文件而存储在\\server_name>\Music\\\.m3u处。client_name是指同步的客户机系统的名称。user_name是用户登录。playlist_name是iTunes库514中的播放列表的名称。
[0054] 参考图6A到6F,这些流程图示出用于执行客户机上的集合同步的计算机可执行的方法的一个或多个实施例或方面。图6A示出集合同步方法(600),包括分析活动用户的iTunes库文件,例如,“Documents and settings”\\“My Documents”\“My Music”\“iTunes”\“iTunes Music Library.xml”以及建立客户机播放列表的列表和客户机音轨的主列表。
[0055] 参考图6B,分析(601)和建立(602)客户机播放列表和音轨主列表可以包括建立客户机音轨的主列表(620),形成音轨列表,音轨列表中的每个音轨具有识别符(ID)和文件名。分析和建立列表还可以包括顺序通过播放列表的列表(621),并且把每个播放列表添加到客户机的播放列表的列表中(622)。在一个示例性实施方式中,可以使用“主”密钥值检测到库播放列表,并且始终对“库”进行重新命名而不管其位置,并且如果检测到的话,可以忽略复制库播放列表的操作。在播放列表的列表中,每个播放列表可以包括名称和音轨的列表。
[0056] 再参考图6A,方法600还可以包括装载包含服务器上所有音轨列表的文件(603),例如,\\\Music\\\library.xml(),得到服务器上当前的播放列表的列表(604),例如,(\\server_name>\Music\\\*.m3u),并且顺序通过客户机播放列表的列表中的播放列表(605),顺序通过服务器播放列表的列表中的播放列表(606),以及顺序通过客户机音轨列表中的音轨(607)。
[0057] 参考图6C,顺序通过客户机播放列表的列表中的播放列表(605)可以包括,对于客户机播放列表的列表中的每个播放列表(630),如果客户机播放列表存在于服务器列表中(631),则对客户机播放列表内容与服务器播放列表进行比较(632)。如果播放列表是不同的(633),则把客户机播放列表复制到复制列表中(634),从而导致更新服务器上的播放列表。如果播放列表是相同的(633),则例如,通过“保持器标志”对服务器列表中的条目作出“保持器”的标记(635)。如果服务器列表中不存在客户机播放列表(631),则把客户机播放列表添加到复制列表中(636)。
[0058] 参考图6D,顺序通过服务器播放列表的列表中的播放列表可以包括,对于服务器播放列表的列表中的每个播放列表(640),如果服务器播放列表不包括“保持器标志”设置(641),则把播放列表添加到删除列表中(642)。
[0059] 参考图6E,顺序通过客户机音轨列表中的音轨(607)可以包括,对于客户机音轨列表中的每个音轨(650),如果音轨在服务器音轨列表中(651),并且客户机日期戳的质量比服务器日期戳的更高(652),则得到音轨的目的地目录(dest_dir)(653),例如,\\\Music\\\,并且把音轨从客户机复制到目的地目录(dest_dir)(654)。如果音轨不在服务器音轨列表中(651),则得到音轨的目的地目录(dest_dir),把音轨从客户机复制到目的地目录(dest_dir),并且把音轨添加到服务器library.xml(657)。
[0060] 在参考图6A,方法600还可以包括顺序通过删除列表中的播放列表(608),包括,对于删除列表中的每个播放列表(608),从服务器删除播放列表(609)。方法600还包括顺序通过复制列表中的播放列表(610)。
[0061] 参考图6F,顺序通过复制列表中的播放列表可以包括,对于复制列表中的每个播放列表(660),对于播放列表中的每个音轨(661),得到音轨的目的地目录(dest_dir)(662),并且把音轨路径修改成dest_dir\track_name(663)。把播放列表文件写入服务器(664)。
[0062] 再参考图6A,方法600还可以包括写入服务器library.xml文件(611)。
[0063] 这里所使用的术语“实质上”、“基本上”或“近似地”涉及关于相应术语的工业可接受的容差。如此的工业可接受的容差范围从小于百分之一到百分之二十,并且对应于,但是不局限于,功能、值、过程变化、大小、工作速度等。这里所使用的术语“耦合”包括直接耦合和经由另一个部件、元件、电路或模块的间接耦合,其中,对于直接耦合,介入的部件、元件、电路或模块不修改信号的信息,而是可以调节其电流电平、电压电平和/或功率电平。例如,通过干扰把一个元件耦合到另一个元件的推断耦合包括以与“耦合”相同的方式进行的两个元件之间的直接和间接耦合。
[0064] 所示的方框图和流程图描绘可以表示代码的模块、分段或部分的过程步骤或方框,所述代码包括用于执行过程中具体逻辑功能或步骤的一个或多个可执行的指令。虽然特定例子示出了具体过程步骤或动作,但是许多替换实施方式都是可能的,并且通常通过简单的设计选择来实现。根据功能、目的、标准的符合性、传统结构等考虑,可以以与这里的具体说明不同的次序来执行动作和步骤。
[0065] 方框图和流程图还描述包括控制器可用介质的制造的物品,控制器可用介质具有嵌入在控制器中的计算机可读出程序代码,用于处理媒体内容和把媒体内容从多个客户机中的一个客户机集合到服务器。
[0066] 在本揭示描述各个实施例的同时,要理解这些实施例是示意性的而并非限制权利要求书的范围。所描述的实施例的许多变化、修改、添加和改进都是可能的。例如,本技术领域中熟知普通技术的人员能容易地实现提供这里揭示的结构和方法所需要的这些步骤,并且会理解所给出的过程参数、材料和尺寸仅仅是示例性的。可以改变参数、材料和尺寸以实现所要求的结构以及修改,这都在权利要求书的范围内。在保持在下列权利要求书的范围内的同时,还可以对这里揭示的实施例作出变化和修改。