April 12, 2014
A delivers media samples directly to the media pipeline and is most often used to enable the MediaElement to use a container format not natively supported by Windows Phone.
Assembly: System.Windows (in System.Windows.dll)
Thetype exposes the following members.
|BeginDrmSetupDecryptor(Byte, Guid)||Starts the process of creating a new decryptor.|
|BeginDrmSetupDecryptor(Byte, Guid, Object)||Starts the process of creating a new decryptor.|
|CloseMedia||The MediaElement can call this method when going through normal shutdown or as a result of an error. This lets the developer perform any needed cleanup of the .|
|Equals(Object)||Determines whether the specified Object is equal to the current Object. (Inherited from Object.)|
|ErrorOccurred||Developers call this method whenever an unrecoverable error has occurred in the . This will cause the MediaFailed event to be raised.|
|Finalize||Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)|
|GetDiagnosticAsync||The MediaElement can call this method to request information about the . Developers respond to this method by calling ReportGetDiagnosticCompleted.|
|GetHashCode||Serves as a hash function for a particular type. (Inherited from Object.)|
|GetSampleAsync||The MediaElement calls this method to ask the to prepare the next MediaStreamSample of the requested stream type for the media pipeline. Developers can respond to this method by calling either ReportGetSampleCompleted or ReportGetSampleProgress.|
|GetType||Gets the Type of the current instance. (Inherited from Object.)|
|MemberwiseClone||Creates a shallow copy of the current Object. (Inherited from Object.)|
|OpenMediaAsync||The MediaElement calls this method to ask the to open the media.|
|ReportGetDiagnosticCompleted||Developers call this method, in response to GetDiagnosticAsync, to pass the requested diagnostic information to the MediaElement.|
|ReportGetSampleCompleted||Developers call this method in response to GetSampleAsync to give the MediaElement the next media sample to be rendered, or to report the end of a stream.|
|ReportGetSampleProgress||Developers call this method in response to GetSampleAsync to inform the MediaElement that it will not return a sample right now, because the needs to refill its buffers, and to allow the MediaElement to transition to the Buffering state.|
|ReportOpenMediaCompleted||Developers call this method in response to OpenMediaAsync to inform the MediaElement that the has been opened and to supply information about the streams it contains.|
|ReportSeekCompleted||Developers call this method in response to SeekAsync to inform the MediaElement that the has finished the requested position change and that future calls to ReportGetSampleCompleted will return samples from that point in the media.|
|ReportSwitchMediaStreamCompleted||Developers call this method in response to SwitchMediaStreamAsync to inform the MediaElement that the has completed the requested stream switch and that samples returned will now be from the requested stream instead of the original stream. Note, that this is meant for the multiple audio stream case, for example language tracks, and not the adaptive streaming case.|
|SeekAsync||The MediaElement calls this method to ask the to seek to the nearest randomly accessible point before the specified time. Developers respond to this method by calling ReportSeekCompleted and by ensuring future calls to ReportGetSampleCompleted will return samples from that point in the media.|
|SwitchMediaStreamAsync||Called when a stream switch is requested on the MediaElement.|
|ToString||Returns a string that represents the current object. (Inherited from Object.)|
is a part of Windows Phone that removes the influence of a media file's container, giving developers direct access to APIs for manipulating encoded elementary audio and video streams.
Why would anyone want to remove the container? For one thing, having access to elementary streams means that developers can now implement scenarios that other solutions have not necessarily provided thus far.
For another reason, having access to elementary streams allows developers to implement scenarios that Windows Phone has not had a chance to implement yet. Examples of this could be, RTSP:T protocol support, SHOUTcast protocol support, seamless audio looping, ID3 v1 and ID3 v2 metadata support, and many other scenarios.
This MediaStreamSource sample will get you started using .
In Windows Phone, when you stream a media source that is implemented to contain both audio and video, but is missing one of the streams, playback from all streams will stop. In this case, you may need to provide mock frames for the missing stream to continue playback.