pub struct AVMediaSelectionOption { /* private fields */ }AVMediaSelectionGroup only.Expand description
AVMediaSelectionOption represents a specific option for the presentation of media within a group of options.
See also Apple’s documentation
Implementations§
Source§impl AVMediaSelectionOption
impl AVMediaSelectionOption
Sourcepub unsafe fn mediaType(&self) -> Retained<AVMediaType>
Available on crate feature AVMediaFormat only.
pub unsafe fn mediaType(&self) -> Retained<AVMediaType>
AVMediaFormat only.The media type of the media data, e.g. AVMediaTypeAudio, AVMediaTypeSubtitle, etc.
Sourcepub unsafe fn mediaSubTypes(&self) -> Retained<NSArray<NSNumber>>
pub unsafe fn mediaSubTypes(&self) -> Retained<NSArray<NSNumber>>
The mediaSubTypes of the media data associated with the option.
An NSArray of NSNumbers carrying four character codes (of type FourCharCode) as defined in CoreAudioTypes.h for audio media and in CMFormatDescription.h for video media. Also see CMFormatDescriptionGetMediaSubType in CMFormatDescription.h for more information about media subtypes.
Note that if no information is available about the encoding of the media presented when a media option is selected, the value of mediaSubTypes will be an empty array. This can occur, for example, with streaming media. In these cases the value of mediaSubTypes should simply not be used as a criteria for selection.
Sourcepub unsafe fn hasMediaCharacteristic(
&self,
media_characteristic: &AVMediaCharacteristic,
) -> bool
Available on crate feature AVMediaFormat only.
pub unsafe fn hasMediaCharacteristic( &self, media_characteristic: &AVMediaCharacteristic, ) -> bool
AVMediaFormat only.Reports whether the media selection option includes media with the specified media characteristic.
-
Parameter mediaCharacteristic: The media characteristic of interest, e.g. AVMediaCharacteristicVisual, AVMediaCharacteristicAudible, AVMediaCharacteristicLegible, etc.
-
Returns: YES if the media selection option includes media with the specified characteristic, otherwise NO.
Sourcepub unsafe fn isPlayable(&self) -> bool
pub unsafe fn isPlayable(&self) -> bool
Indicates whether a media selection option is playable.
If the media data associated with the option cannot be decoded or otherwise rendered, playable is NO.
Sourcepub unsafe fn extendedLanguageTag(&self) -> Option<Retained<NSString>>
pub unsafe fn extendedLanguageTag(&self) -> Option<Retained<NSString>>
Indicates the RFC 4646 language tag associated with the option. May be nil.
Sourcepub unsafe fn locale(&self) -> Option<Retained<NSLocale>>
pub unsafe fn locale(&self) -> Option<Retained<NSLocale>>
Indicates the locale for which the media option was authored.
Use -[NSLocale objectForKey:NSLocaleLanguageCode] to obtain the language code of the locale. See NSLocale.h for additional information.
Sourcepub unsafe fn commonMetadata(&self) -> Retained<NSArray<AVMetadataItem>>
Available on crate feature AVMetadataItem only.
pub unsafe fn commonMetadata(&self) -> Retained<NSArray<AVMetadataItem>>
AVMetadataItem only.Provides an array of AVMetadataItems for each common metadata key for which a value is available.
The array of AVMetadataItems can be filtered according to language via +[AVMetadataItem metadataItemsFromArray:filteredAndSortedAccordingToPreferredLanguages:], according to locale via +[AVMetadataItem metadataItemsFromArray:withLocale:], or according to key via +[AVMetadataItem metadataItemsFromArray:withKey:keySpace:]. Example: to obtain the name (or title) of a media selection option in any of the user’s preferred languages.
NSString *title = nil;
NSArray *titles = [AVMetadataItem metadataItemsFromArray:[mediaSelectionOption commonMetadata] withKey:AVMetadataCommonKeyTitle keySpace:AVMetadataKeySpaceCommon];
if ([titles count] > 0)
{
// Try to get a title that matches one of the user's preferred languages.
NSArray *titlesForPreferredLanguages = [AVMetadataItem metadataItemsFromArray:titles filteredAndSortedAccordingToPreferredLanguages:[NSLocale preferredLanguages]];
if ([titlesForPreferredLanguages count] > 0)
{
title = [[titlesForPreferredLanguages objectAtIndex:0] stringValue];
}
// No matches in any of the preferred languages. Just use the primary title metadata we find.
if (title == nil)
{
title = [[titles objectAtIndex:0] stringValue];
}
}Sourcepub unsafe fn availableMetadataFormats(&self) -> Retained<NSArray<NSString>>
pub unsafe fn availableMetadataFormats(&self) -> Retained<NSArray<NSString>>
Provides an NSArray of NSStrings, each representing a metadata format that contains metadata associated with the option (e.g. ID3, iTunes metadata, etc.).
Metadata formats are defined in AVMetadataFormat.h.
Sourcepub unsafe fn metadataForFormat(
&self,
format: &NSString,
) -> Retained<NSArray<AVMetadataItem>>
Available on crate feature AVMetadataItem only.
pub unsafe fn metadataForFormat( &self, format: &NSString, ) -> Retained<NSArray<AVMetadataItem>>
AVMetadataItem only.Provides an NSArray of AVMetadataItems, one for each metadata item in the container of the specified format.
-
Parameter format: The metadata format for which items are requested.
-
Returns: An NSArray containing AVMetadataItems.
Sourcepub unsafe fn associatedMediaSelectionOptionInMediaSelectionGroup(
&self,
media_selection_group: &AVMediaSelectionGroup,
) -> Option<Retained<AVMediaSelectionOption>>
pub unsafe fn associatedMediaSelectionOptionInMediaSelectionGroup( &self, media_selection_group: &AVMediaSelectionGroup, ) -> Option<Retained<AVMediaSelectionOption>>
If a media selection option in another group is associated with the specified option, returns a reference to the associated option.
Audible media selection options often have associated legible media selection options; in particular, audible options are typically associated with forced-only subtitle options with the same locale. See AVMediaCharacteristicContainsOnlyForcedSubtitles in AVMediaFormat.h for a discussion of forced-only subtitles.
-
Parameter mediaSelectionGroup: A media selection group in which an associated option is to be sought.
-
Returns: An instance of AVMediaSelectionOption.
Sourcepub unsafe fn propertyList(&self) -> Retained<AnyObject>
pub unsafe fn propertyList(&self) -> Retained<AnyObject>
Returns a serializable property list that can be used to obtain an instance of AVMediaSelectionOption representing the same option as the receiver via -[AVMediaSelectionGroup mediaSelectionOptionWithPropertyList:].
- Returns: A serializable property list that’s sufficient to identify the option within its group. For serialization utilities, see NSPropertyList.h.
Sourcepub unsafe fn displayNameWithLocale(
&self,
locale: &NSLocale,
) -> Retained<NSString>
pub unsafe fn displayNameWithLocale( &self, locale: &NSLocale, ) -> Retained<NSString>
Provides an NSString suitable for display.
May use this option’s common metadata, media characteristics and locale properties in addition to the provided locale to formulate an NSString intended for display. Will only consider common metadata with the specified locale.
- Parameter locale: Localize manufactured portions of the string using the specificed locale.
Sourcepub unsafe fn displayName(&self) -> Retained<NSString>
pub unsafe fn displayName(&self) -> Retained<NSString>
Provides an NSString suitable for display using the current system locale.
May use this option’s common metadata, media characteristics and locale properties in addition to the current system locale to formulate an NSString intended for display. In the event that common metadata is not available in the specified locale, displayName will fall back to considering locales with the multilingual (“mul”) then undetermined (“und”) locale identifiers. For a display name strictly with the specified locale use displayNameWithLocale: instead.
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 AVMediaSelectionOption
impl AsRef<AnyObject> for AVMediaSelectionOption
Source§impl AsRef<NSObject> for AVMediaSelectionOption
impl AsRef<NSObject> for AVMediaSelectionOption
Source§impl Borrow<AnyObject> for AVMediaSelectionOption
impl Borrow<AnyObject> for AVMediaSelectionOption
Source§impl Borrow<NSObject> for AVMediaSelectionOption
impl Borrow<NSObject> for AVMediaSelectionOption
Source§impl ClassType for AVMediaSelectionOption
impl ClassType for AVMediaSelectionOption
Source§const NAME: &'static str = "AVMediaSelectionOption"
const NAME: &'static str = "AVMediaSelectionOption"
Source§type ThreadKind = <<AVMediaSelectionOption as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<AVMediaSelectionOption as ClassType>::Super as ClassType>::ThreadKind
Source§impl CopyingHelper for AVMediaSelectionOption
impl CopyingHelper for AVMediaSelectionOption
Source§type Result = AVMediaSelectionOption
type Result = AVMediaSelectionOption
Self if the type has no
immutable counterpart. Read moreSource§impl Debug for AVMediaSelectionOption
impl Debug for AVMediaSelectionOption
Source§impl Deref for AVMediaSelectionOption
impl Deref for AVMediaSelectionOption
Source§impl Hash for AVMediaSelectionOption
impl Hash for AVMediaSelectionOption
Source§impl Message for AVMediaSelectionOption
impl Message for AVMediaSelectionOption
Source§impl NSCopying for AVMediaSelectionOption
impl NSCopying for AVMediaSelectionOption
Source§impl NSObjectProtocol for AVMediaSelectionOption
impl NSObjectProtocol for AVMediaSelectionOption
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