Mac Developer Library

Developer

Media Library Framework Reference MLMediaSource Class Reference

Options
Deployment Target:

On This Page
Language:

MLMediaSource

The MLMediaSource class identifies a specific provider of media. Conceptually, a media source respresents a single app, such as iTunes or Aperture. Each media source contains multiple groups of media objects—individual files containing a piece of media such as a photo, song, or movie.

The structure of the group hierarchy is specific to each media source, but all sources have certain commonalities. For example, every source has a single root media group, which contains all groups and objects within that source. It is the highest-level parent group in the hierarchy and each of its descendant groups contains its own subgroups and their objects. All groups have a reference to their parent within the hierarchy. A group with no descendants contains only its own objects. If a media group does not contain any objects, it is not visible in the hierarchy.

Every media source has a unique media source identifier within a single media library instance. For a list of possible media source identifiers, see Media Source Identifiers.

All MLMediaSource properties are read-only, so this information can be accessed but not altered.

  • A list of attributes describing the media source. (read-only)

    Declaration

    Swift

    var attributes: [String : AnyObject] { get }

    Objective-C

    @property(readonly, copy) NSDictionary <NSString *,id> *attributes

    Availability

    Available in OS X v10.9 and later.

  • The base media group in the media source that contains all other groups within the source as descendant elements. (read-only)

    Declaration

    Swift

    var rootMediaGroup: MLMediaGroup? { get }

    Objective-C

    @property(readonly, retain) MLMediaGroup *rootMediaGroup

    Discussion

    This accessor property is nonblocking. If there is no data yet, it returns nil and automatically triggers an internal asynchronous request. When data arrives, a KVO notification is sent via the main thread.

    Availability

    Available in OS X v10.9 and later.

  • Returns the media group with the specified identifier.

    Declaration

    Swift

    func mediaGroupForIdentifier(_ mediaGroupIdentifier: String) -> MLMediaGroup?

    Objective-C

    - (MLMediaGroup *)mediaGroupForIdentifier:(NSString *)mediaGroupIdentifier

    Parameters

    mediaGroupIdentifier

    The media group identifier to search for in the source.

    Discussion

    The media source must have finished loading before this method returns valid data. Specifically, the root media group must be available before the lookup methods will succeed. Otherwise, the return value is undefined.

    Availability

    Available in OS X v10.9 and later.

  • Returns the media groups with the specified identifiers.

    Declaration

    Swift

    func mediaGroupsForIdentifiers(_ mediaGroupIdentifiers: [String]) -> [String : MLMediaGroup]

    Objective-C

    - (NSDictionary<NSString *,MLMediaGroup *> *)mediaGroupsForIdentifiers:(NSArray<NSString *> *)mediaGroupIdentifiers

    Parameters

    mediaGroupIdentifiers

    An array of media group identifiers to search for in the source.

    Return Value

    A dictionary of media groups matching the specified identifiers.

    Discussion

    The media source must have finished loading before this method returns valid data. Specifically, the root media group must be available before the lookup methods will succeed. Otherwise, the return value is undefined.

    Availability

    Available in OS X v10.9 and later.

  • Returns the media object with the specified identifier.

    Declaration

    Swift

    func mediaObjectForIdentifier(_ mediaObjectIdentifier: String) -> MLMediaObject?

    Objective-C

    - (MLMediaObject *)mediaObjectForIdentifier:(NSString *)mediaObjectIdentifier

    Parameters

    mediaObjectIdentifier

    The media object identifier to search for in the media source.

    Discussion

    The media source must have finished loading before this method returns valid data. Specifically, the root media group must be available before the lookup methods will succeed. Otherwise, the return value is undefined.

    Availability

    Available in OS X v10.9 and later.

  • Returns the media objects with the specified identifiers.

    Declaration

    Swift

    func mediaObjectsForIdentifiers(_ mediaObjectIdentifiers: [String]) -> [String : MLMediaObject]

    Objective-C

    - (NSDictionary<NSString *,MLMediaObject *> *)mediaObjectsForIdentifiers:(NSArray<NSString *> *)mediaObjectIdentifiers

    Parameters

    mediaObjectIdentifiers

    An array of media object identifiers to search for in the source.

    Return Value

    A dictionary of media objects matching the specified identifiers.

    Discussion

    The media source must have finished loading before this method returns valid data. Specifically, the root media group must be available before the lookup methods will succeed. Otherwise, the return value is undefined.

    Availability

    Available in OS X v10.9 and later.