pub struct ITLibMediaItem { /* private fields */ }ITLibMediaEntity and ITLibMediaItem only.Expand description
A media item represents a single piece of media (such as a song, a video, a podcast, etc) in the iTunes library. A media item has an overall unique identifier, accessed using the persistentID property. The media item metadata may be accessed through its individual properties or via the ITLibMediaEntity general property accessor methods.
See also Apple’s documentation
Implementations§
Source§impl ITLibMediaItem
impl ITLibMediaItem
Sourcepub unsafe fn sortTitle(&self) -> Option<Retained<NSString>>
pub unsafe fn sortTitle(&self) -> Option<Retained<NSString>>
The title of this media item that should be used for sorting purposes. If nil, use the title field.
Sourcepub unsafe fn artist(&self) -> Option<Retained<ITLibArtist>>
Available on crate feature ITLibArtist only.
pub unsafe fn artist(&self) -> Option<Retained<ITLibArtist>>
ITLibArtist only.The artist associated with this media item.
Sourcepub unsafe fn composer(&self) -> Retained<NSString>
pub unsafe fn composer(&self) -> Retained<NSString>
The name of the composer associated with this media item. May be empty.
Sourcepub unsafe fn sortComposer(&self) -> Option<Retained<NSString>>
pub unsafe fn sortComposer(&self) -> Option<Retained<NSString>>
The name of the composer associated with this media item that should be used for sorting purposes. If nil, use the composer field.
Sourcepub unsafe fn isRatingComputed(&self) -> bool
pub unsafe fn isRatingComputed(&self) -> bool
Whether this media item’s rating is computed.
Sourcepub unsafe fn startTime(&self) -> NSUInteger
pub unsafe fn startTime(&self) -> NSUInteger
If non-zero, the actual time playback for this media item will start instead of 0:00 (in milliseconds).
Sourcepub unsafe fn stopTime(&self) -> NSUInteger
pub unsafe fn stopTime(&self) -> NSUInteger
If non-zero, the actual time playback for this media item will stop vs. the total time (in milliseconds).
Sourcepub unsafe fn album(&self) -> Retained<ITLibAlbum>
Available on crate feature ITLibAlbum only.
pub unsafe fn album(&self) -> Retained<ITLibAlbum>
ITLibAlbum only.The album where this media item belongs.
Sourcepub unsafe fn genre(&self) -> Retained<NSString>
pub unsafe fn genre(&self) -> Retained<NSString>
The genre associated with this media item. May be empty.
Sourcepub unsafe fn kind(&self) -> Option<Retained<NSString>>
pub unsafe fn kind(&self) -> Option<Retained<NSString>>
This media item’s file kind (ex. MPEG audio file).
Sourcepub unsafe fn mediaKind(&self) -> ITLibMediaItemMediaKind
pub unsafe fn mediaKind(&self) -> ITLibMediaItemMediaKind
This media item’s media kind.
Sourcepub unsafe fn fileSize(&self) -> c_ulonglong
pub unsafe fn fileSize(&self) -> c_ulonglong
The size in bytes of this media item on disk.
Sourcepub unsafe fn size(&self) -> NSUInteger
👎Deprecated
pub unsafe fn size(&self) -> NSUInteger
The size in bytes of this media item on disk. (deprecated: use fileSize instead)
Sourcepub unsafe fn totalTime(&self) -> NSUInteger
pub unsafe fn totalTime(&self) -> NSUInteger
The length of this media item in milliseconds.
Sourcepub unsafe fn trackNumber(&self) -> NSUInteger
pub unsafe fn trackNumber(&self) -> NSUInteger
The position of this media item within its album.
Sourcepub unsafe fn category(&self) -> Option<Retained<NSString>>
pub unsafe fn category(&self) -> Option<Retained<NSString>>
The podcast category of this media item (implies this media item is a podcast).
Sourcepub unsafe fn description(&self) -> Option<Retained<NSString>>
pub unsafe fn description(&self) -> Option<Retained<NSString>>
Any podcast description of with this media item (implies this media item is a podcast).
Sourcepub unsafe fn lyricsContentRating(&self) -> ITLibMediaItemLyricsContentRating
pub unsafe fn lyricsContentRating(&self) -> ITLibMediaItemLyricsContentRating
The content rating of this media item’s lyrics.
Sourcepub unsafe fn contentRating(&self) -> Option<Retained<NSString>>
pub unsafe fn contentRating(&self) -> Option<Retained<NSString>>
The extended content rating of this media item.
Sourcepub unsafe fn modifiedDate(&self) -> Option<Retained<NSDate>>
pub unsafe fn modifiedDate(&self) -> Option<Retained<NSDate>>
The date and time this media item was last modified.
Sourcepub unsafe fn addedDate(&self) -> Option<Retained<NSDate>>
pub unsafe fn addedDate(&self) -> Option<Retained<NSDate>>
The date and media item this media item was added to the iTunes database.
Sourcepub unsafe fn bitrate(&self) -> NSUInteger
pub unsafe fn bitrate(&self) -> NSUInteger
The bitrate of this media item in kbps.
Sourcepub unsafe fn sampleRate(&self) -> NSUInteger
pub unsafe fn sampleRate(&self) -> NSUInteger
The sample rate of this media item in samples per second.
Sourcepub unsafe fn beatsPerMinute(&self) -> NSUInteger
pub unsafe fn beatsPerMinute(&self) -> NSUInteger
The BPM (beats per minute) of this media item.
Sourcepub unsafe fn playCount(&self) -> NSUInteger
pub unsafe fn playCount(&self) -> NSUInteger
The number of times this media item has been played in iTunes.
Sourcepub unsafe fn lastPlayedDate(&self) -> Option<Retained<NSDate>>
pub unsafe fn lastPlayedDate(&self) -> Option<Retained<NSDate>>
The date and time this media item was last played in iTunes, or nil if this media item has not been played.
Sourcepub unsafe fn playStatus(&self) -> ITLibMediaItemPlayStatus
pub unsafe fn playStatus(&self) -> ITLibMediaItemPlayStatus
The play status for this media. Represents partially played and unplayed states for videos and podcasts. Other media kinds always return “none”.
Sourcepub unsafe fn location(&self) -> Option<Retained<NSURL>>
pub unsafe fn location(&self) -> Option<Retained<NSURL>>
The location of this media item on disk.
Sourcepub unsafe fn hasArtworkAvailable(&self) -> bool
pub unsafe fn hasArtworkAvailable(&self) -> bool
Whether this media item has artwork.
Sourcepub unsafe fn artwork(&self) -> Option<Retained<ITLibArtwork>>
Available on crate feature ITLibArtwork only.
pub unsafe fn artwork(&self) -> Option<Retained<ITLibArtwork>>
ITLibArtwork only.Whether this media item has artwork.
Sourcepub unsafe fn comments(&self) -> Option<Retained<NSString>>
pub unsafe fn comments(&self) -> Option<Retained<NSString>>
Any comments associated with this media item.
Sourcepub unsafe fn isPurchased(&self) -> bool
pub unsafe fn isPurchased(&self) -> bool
Whether this media item was purchased.
Sourcepub unsafe fn isCloud(&self) -> bool
pub unsafe fn isCloud(&self) -> bool
Whether this media item is iTunes Match or iTunes in the Cloud.
Sourcepub unsafe fn isDRMProtected(&self) -> bool
pub unsafe fn isDRMProtected(&self) -> bool
Whether this media item is DRM protected.
Sourcepub unsafe fn isVideo(&self) -> bool
pub unsafe fn isVideo(&self) -> bool
Whether this media item is a video media item (video podcast, movie, etc).
Sourcepub unsafe fn videoInfo(&self) -> Option<Retained<ITLibMediaItemVideoInfo>>
Available on crate feature ITLibMediaItemVideoInfo only.
pub unsafe fn videoInfo(&self) -> Option<Retained<ITLibMediaItemVideoInfo>>
ITLibMediaItemVideoInfo only.The video information of this media item (implies this media item is a video media item).
Sourcepub unsafe fn releaseDate(&self) -> Option<Retained<NSDate>>
pub unsafe fn releaseDate(&self) -> Option<Retained<NSDate>>
The date this media item was released.
Sourcepub unsafe fn year(&self) -> NSUInteger
pub unsafe fn year(&self) -> NSUInteger
The year when this media item was released.
Sourcepub unsafe fn fileType(&self) -> NSUInteger
👎Deprecated
pub unsafe fn fileType(&self) -> NSUInteger
The type of the file this media item refers to.
Sourcepub unsafe fn skipCount(&self) -> NSUInteger
pub unsafe fn skipCount(&self) -> NSUInteger
The number of times this media item has been skiped.
Sourcepub unsafe fn skipDate(&self) -> Option<Retained<NSDate>>
pub unsafe fn skipDate(&self) -> Option<Retained<NSDate>>
The date and time when this media item was last skipped.
Sourcepub unsafe fn voiceOverLanguage(&self) -> Option<Retained<NSString>>
👎Deprecated
pub unsafe fn voiceOverLanguage(&self) -> Option<Retained<NSString>>
The voice-over language of this media item
Sourcepub unsafe fn volumeAdjustment(&self) -> NSInteger
pub unsafe fn volumeAdjustment(&self) -> NSInteger
The volume adjustment used for this media item if any.
Sourcepub unsafe fn volumeNormalizationEnergy(&self) -> NSUInteger
pub unsafe fn volumeNormalizationEnergy(&self) -> NSUInteger
The volume normalization energy applied to this media item.
Sourcepub unsafe fn isUserDisabled(&self) -> bool
pub unsafe fn isUserDisabled(&self) -> bool
Whether the user has disabled this media item.
Sourcepub unsafe fn locationType(&self) -> ITLibMediaItemLocationType
pub unsafe fn locationType(&self) -> ITLibMediaItemLocationType
The type of this media item with respect to its location.
Methods from Deref<Target = ITLibMediaEntity>§
Sourcepub unsafe fn persistentID(&self) -> Retained<NSNumber>
pub unsafe fn persistentID(&self) -> Retained<NSNumber>
The unique identifier of this media entity.
Sourcepub unsafe fn valueForProperty(
&self,
property: &NSString,
) -> Option<Retained<AnyObject>>
pub unsafe fn valueForProperty( &self, property: &NSString, ) -> Option<Retained<AnyObject>>
Gets the value for a specified media property key.
The media property keys you can use with this property are listed in this document and in Media Item Property Keys and Playlist Property Keys.
Parameter property: The media property key that you want the corresponding value of.
Returns: The value for the media property key.
Sourcepub unsafe fn enumerateValuesForProperties_usingBlock(
&self,
properties: Option<&NSSet<NSString>>,
block: &DynBlock<dyn Fn(NonNull<NSString>, NonNull<AnyObject>, NonNull<Bool>)>,
)
Available on crate feature block2 only.
pub unsafe fn enumerateValuesForProperties_usingBlock( &self, properties: Option<&NSSet<NSString>>, block: &DynBlock<dyn Fn(NonNull<NSString>, NonNull<AnyObject>, NonNull<Bool>)>, )
block2 only.Executes a provided block with the fetched values for the given item properties.
Use this method to get property values in a batch fashion. In some cases, enumerating over a set of property keys can be more efficient than fetching each individual property with valueForProperty:. The media property keys you can use with this property are listed in this document and in Media Item Property Keys and Playlist Property Keys.
Parameter properties: A set of keys for the properties that will be enumerated, or nil to enumerate all properties.
Parameter block: A block object that executes for each property in the properties set.
Sourcepub unsafe fn enumerateValuesExceptForProperties_usingBlock(
&self,
properties: Option<&NSSet<NSString>>,
block: &DynBlock<dyn Fn(NonNull<NSString>, NonNull<AnyObject>, NonNull<Bool>)>,
)
Available on crate feature block2 only.
pub unsafe fn enumerateValuesExceptForProperties_usingBlock( &self, properties: Option<&NSSet<NSString>>, block: &DynBlock<dyn Fn(NonNull<NSString>, NonNull<AnyObject>, NonNull<Bool>)>, )
block2 only.Executes a provided block with the fetched values for all properties in the entity except for the provided set.
Use this method to get property values in a batch fashion. In some cases, enumerating over a set of property keys can be more efficient than fetching each individual property with valueForProperty:. The media property keys you can use with this property are listed in this document and in Media Item Property Keys and Playlist Property Keys.
Parameter properties: A set of property keys that should NOT be enumerated, or nil to enumerate all properties.
Parameter block: A block object that executes for each property except for the ones in the properties set.
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl AsRef<AnyObject> for ITLibMediaItem
impl AsRef<AnyObject> for ITLibMediaItem
Source§impl AsRef<ITLibMediaEntity> for ITLibMediaItem
impl AsRef<ITLibMediaEntity> for ITLibMediaItem
Source§fn as_ref(&self) -> &ITLibMediaEntity
fn as_ref(&self) -> &ITLibMediaEntity
Source§impl AsRef<ITLibMediaItem> for ITLibMediaItem
impl AsRef<ITLibMediaItem> for ITLibMediaItem
Source§impl AsRef<NSObject> for ITLibMediaItem
impl AsRef<NSObject> for ITLibMediaItem
Source§impl Borrow<AnyObject> for ITLibMediaItem
impl Borrow<AnyObject> for ITLibMediaItem
Source§impl Borrow<ITLibMediaEntity> for ITLibMediaItem
impl Borrow<ITLibMediaEntity> for ITLibMediaItem
Source§fn borrow(&self) -> &ITLibMediaEntity
fn borrow(&self) -> &ITLibMediaEntity
Source§impl Borrow<NSObject> for ITLibMediaItem
impl Borrow<NSObject> for ITLibMediaItem
Source§impl ClassType for ITLibMediaItem
impl ClassType for ITLibMediaItem
Source§const NAME: &'static str = "ITLibMediaItem"
const NAME: &'static str = "ITLibMediaItem"
Source§type Super = ITLibMediaEntity
type Super = ITLibMediaEntity
Source§type ThreadKind = <<ITLibMediaItem as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<ITLibMediaItem as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for ITLibMediaItem
impl Debug for ITLibMediaItem
Source§impl Deref for ITLibMediaItem
impl Deref for ITLibMediaItem
Source§impl Hash for ITLibMediaItem
impl Hash for ITLibMediaItem
Source§impl Message for ITLibMediaItem
impl Message for ITLibMediaItem
Source§impl NSObjectProtocol for ITLibMediaItem
impl NSObjectProtocol for ITLibMediaItem
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref