}
/// <summary>
- /// Sets the maximum limit of the streaming variant.
+ /// Sets the maximum limit of adaptive streaming variants.
/// </summary>
/// <exception cref="ObjectDisposedException">The <see cref="Player"/> has already been disposed of.</exception>
/// <exception cref="ArgumentOutOfRangeException">
}
/// <summary>
- /// Gets the maximum limit of the streaming variant.
+ /// Gets the maximum limit of the adaptive streaming variant.
/// </summary>
/// <returns>The <see cref="VariantInfo"/> containing the variant information.</returns>
/// <exception cref="ObjectDisposedException">The <see cref="Player"/> has already been disposed of.</exception>
}
/// <summary>
- /// Retrieves all the available adaptive variants.
+ /// Retrieves all the available adaptive streaming variants.
/// </summary>
/// <returns>
/// It returns a list contained all the available adaptive variants.
}
/// <summary>
- /// Gets the packet containing the decoded frame.
+ /// Gets the media packet containing the audio decoded frame.
/// </summary>
/// <since_tizen> 6 </since_tizen>
public MediaPacket Packet { get; }
}
/// <summary>
- /// Gets the number of items.
+ /// Gets the number of equalizer bands available.
/// </summary>
/// <exception cref="NotAvailableException">If audio offload is enabled by calling <see cref="AudioOffload.IsEnabled"/>. (Since tizen 6.0)
/// -or-<br/>
}
/// <summary>
- /// Gets the value whether the AudioEffect is available or not.
+ /// Gets the value indicating whether the AudioEffect is available or not.
/// </summary>
/// <remarks>This function returns the availability of the <see cref="AudioEffect"/>.
/// It could be unavailable depending on the platform capabilities.<br/>
}
/// <summary>
- /// Enables or disables the audio offload.
+ /// Gets or sets whether the audio offload is enabled.
/// </summary>
/// <value>The value indicating whether or not audio offload is enabled. The default value is false.</value>
/// <remarks><para>The player lets the hardware decode and render the sound if the audio offload is enabled.
}
/// <summary>
- /// Get a state whether or not the audio offload is activated.
+ /// Get a value indication whether or not the audio offload is activated.
/// </summary>
/// <value>The value indicating whether or not AudioOffload is activated.</value>
/// <remarks>
/// <summary>
- /// Gets the frequency in dB.
+ /// Gets the frequency in dB of the equalizer band.
/// </summary>
/// <exception cref="NotAvailableException">
/// If audio offload is enabled by calling <see cref="AudioOffload.IsEnabled"/>. (Since tizen 6.0)
}
/// <summary>
- /// Gets the frequency range in dB.
+ /// Gets the frequency range in dB of the equalizer band.
/// </summary>
/// <exception cref="NotAvailableException">
/// If audio offload is enabled by calling <see cref="AudioOffload.IsEnabled"/>. (Since tizen 6.0)
private byte[] _buffer;
/// <summary>
- /// Initializes a new instance of the MediaBufferSource class with an allocated buffer.
+ /// Initializes a new instance of the MediaBufferSource class with the specified buffer length.
/// </summary>
/// <param name="length">The value indicating the size of the buffer.</param>
/// <exception cref="ArgumentOutOfRangeException">
}
/// <summary>
- /// Initializes a new instance of the MediaBufferSource class from the buffer.
+ /// Initializes a new instance of the MediaBufferSource class with the specified buffer.
/// </summary>
/// <param name="buffer">The source array to be copied into the buffer.</param>
/// <exception cref="ArgumentNullException"><paramref name="buffer"/> is null.</exception>
//TODO remove default parameter.
/// <summary>
- /// Initializes a new instance of the MediaBufferSource class from the buffer
+ /// Initializes a new instance of the MediaBufferSource class with buffer, length, and optional offset.
/// with the specified length and the specified offset.
/// </summary>
/// <param name="buffer">The source array to be copied into the buffer.</param>
}
}
}
-
}
/// <summary>
- /// Gets the status.
+ /// Gets the current buffer status.
/// </summary>
/// <since_tizen> 3 </since_tizen>
public MediaStreamBufferStatus Status { get; }
public event EventHandler<MediaStreamSeekingOccurredEventArgs> SeekingOccurred;
/// <summary>
- /// Gets or sets the max size of the buffer.
+ /// Gets or sets the maximum size of the buffer for media stream.
/// </summary>
- /// <value>The max size of the buffer. The default is 200000.</value>
- /// <remarks>If the buffer level overflows the max size, <see cref="BufferStatusChanged"/> will be raised with <see cref="MediaStreamBufferStatus.Overflow"/>.</remarks>
+ /// <value>The maximum size of the buffer in bytes. The default is 200000.</value>
+ /// <remarks>If the buffer level overflows the maximum size, <see cref="BufferStatusChanged"/> will be raised with <see cref="MediaStreamBufferStatus.Overflow"/>.</remarks>
/// <exception cref="InvalidOperationException">The <see cref="MediaStreamSource"/> is not assigned to a player.</exception>
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value"/> is zero.</exception>
/// <seealso cref="BufferStatusChanged"/>
}
/// <summary>
- /// Gets or sets the minimum threshold of the buffer.
+ /// Gets or sets the minimum threshold of the media stream buffer.
/// </summary>
/// <value>The minimum threshold of the buffer in percentage. The default is zero.</value>
/// <remarks>If the buffer level drops below the threshold value, <see cref="BufferStatusChanged"/> will be raised with <see cref="MediaStreamBufferStatus.Underrun"/>.</remarks>
}
/// <summary>
- /// Gets the offset.
+ /// Gets the next new play position as a result of seeking operation.
/// </summary>
+ /// <remarks>
+ /// The next playback position after SetPlayPositionAsync could be a little bit different with its input position.<br/>
+ /// So user should push the next media data using this time offset in nanoseconds.
+ /// </remarks>
+ /// <seealso cref="Player.SetPlayPositionAsync"/>
+ /// <seealso cref="Player.SetPlayPositionNanosecondsAsync"/>
/// <since_tizen> 3 </since_tizen>
public ulong Offset { get; }
private static List<MediaFormatVideoMimeType> _supportedVideoFormats;
/// <summary>
- /// Gets all supported audio types.
+ /// Gets the supported audio types of the media stream source.
/// </summary>
/// <since_tizen> 3 </since_tizen>
public static IEnumerable<MediaFormatAudioMimeType> SupportedAudioTypes
}
/// <summary>
- /// Gets all supported video types.
+ /// Gets the supported video types of the media stream source.
/// </summary>
/// <since_tizen> 3 </since_tizen>
public static IEnumerable<MediaFormatVideoMimeType> SupportedVideoTypes
public MediaStreamConfiguration VideoConfiguration { get; }
/// <summary>
- /// Pushes elementary stream to decode audio or video.
+ /// Pushes elementary stream to decode audio or video packet.
/// </summary>
/// <remarks>This source must be set as a source to a player and the player must be in the <see cref="PlayerState.Ready"/>,
/// <see cref="PlayerState.Playing"/>, or <see cref="PlayerState.Paused"/> state.</remarks>
namespace Tizen.Multimedia
{
/// <summary>
- /// Represents a media source with a uri.
+ /// Represents a media source with a URI.
/// </summary>
/// <remarks>
/// The internet privilege(http://tizen.org/privilege/internet) must be added if any URLs are used to play from a network.
/// <since_tizen> 3 </since_tizen>
public sealed class MediaUriSource : MediaSource
{
- // TODO consider using Uri class.
+ // TODO consider using URI class.
/// <summary>
- /// Initializes a new instance of the MediaUriSource class with the specified uri.</summary>
+ /// Initializes a new instance of the MediaUriSource class with the specified URI.
+ /// </summary>
/// <param name="uri">The uri string.</param>
/// <remarks>For HTTP or RSTP, uri should start with "http://" or "rtsp://".
/// The default protocol is "file://".
}
}
}
-
}
/// <summary>
- /// Gets the reason.
+ /// Gets the reason for the playback interruption.
/// </summary>
/// <since_tizen> 3 </since_tizen>
public PlaybackInterruptionReason Reason { get; }
#endregion
/// <summary>
- /// Gets the state of the player.
+ /// Gets the current state of the player.
/// </summary>
/// <value>The current state of the player.</value>
/// <exception cref="ObjectDisposedException">The player has already been disposed of.</exception>
}
/// <summary>
- /// Gets or sets the looping state.
+ /// Gets or sets a value indicationg whether the media source is played in a loop.
/// </summary>
/// <value>true if the playback is looping; otherwise, false. The default value is false.</value>
/// <exception cref="ObjectDisposedException">The player has already been disposed of.</exception>
private PlayerDisplaySettings _displaySettings;
/// <summary>
- /// Gets the display settings.
+ /// Gets the display settings of the player.
/// </summary>
/// <value>A <see cref="PlayerDisplaySettings"/> that specifies the display settings.</value>
/// <since_tizen> 3 </since_tizen>
}
/// <summary>
- /// Gets or sets the display.
+ /// Gets or sets the display of the player.
/// </summary>
/// <value>A <see cref="Multimedia.Display"/> that specifies the display.</value>
/// <remarks>
private PlayerTrackInfo _audioTrack;
/// <summary>
- /// Gets the track info for the audio.
+ /// Gets the audio track information of the player.
/// </summary>
/// <value>A <see cref="PlayerTrackInfo"/> for audio.</value>
/// <since_tizen> 3 </since_tizen>
private PlayerTrackInfo _subtitleTrackInfo;
/// <summary>
- /// Gets the track info for the subtitle.
+ /// Gets the sutitle track information of the player.
/// </summary>
/// <value>A <see cref="PlayerTrackInfo"/> for the subtitle.</value>
/// <since_tizen> 3 </since_tizen>
private StreamInfo _streamInfo;
/// <summary>
- /// Gets the stream information.
+ /// Gets the stream information of the player.
/// </summary>
/// <value>A <see cref="StreamInfo"/> for this player.</value>
/// <since_tizen> 3 </since_tizen>
private AudioEffect _audioEffect;
/// <summary>
- /// Gets the audio effect.
+ /// Gets the audio effect of the player.
/// </summary>
/// <feature>http://tizen.org/feature/multimedia.custom_audio_effect</feature>
/// <exception cref="NotSupportedException">The required feature is not supported.</exception>
}
/// <summary>
- /// Gets or sets the mute state.
+ /// Gets or sets a value indicationg whether the audio output of the player is muted.
/// </summary>
/// <value>true if the player is muted; otherwise, false.</value>
/// <exception cref="ObjectDisposedException">The player has already been disposed of.</exception>
}
/// <summary>
- /// Gets or sets the current volume.
+ /// Gets or sets the current volume of the player.
/// </summary>
/// <remarks>Valid volume range is from 0 to 1.0, inclusive.</remarks>
/// <exception cref="ObjectDisposedException">The player has already been disposed of.</exception>
}
/// <summary>
- /// Gets or sets the audio-only state.
+ /// Gets or sets a value indicating whether the player is in audio only mode.
/// </summary>
/// <value>true if the playback is audio-only mode; otherwise, false. The default value is false.</value>
/// The <see cref="Player"/> must be in the <see cref="PlayerState.Ready"/>,
}
/// <summary>
- /// Gets or sets the player's replaygain state.
+ /// Gets or sets a value indicating whether the replay gain is enabled.
/// </summary>
/// <value>If the replaygain status is true, replaygain is applied (if contents has a replaygain tag);
/// otherwise, the replaygain is not affected by tag and properties.</value>
}
/// <summary>
- /// Enables or disables controlling the pitch of audio.
- /// Gets the status of controlling the pitch of audio.
+ /// Gets or sets a value indicating whether the audio pitch control is enabled.
/// </summary>
/// <value>The value indicating whether or not AudioPitch is enabled. The default is false.</value>
/// <remarks>This function is used for audio content only.
}
/// <summary>
- /// Gets or sets the pitch of audio.
+ /// Gets or sets the pitch of the audio.
/// </summary>
/// <value>The audio stream pitch value. The default is 1.</value>
/// <remarks>Enabling pitch control could increase the CPU usage on some devices.
private SphericalVideo _sphericalVideo;
/// <summary>
- /// Gets the spherical video settings.
+ /// Gets the spherical video porperties of the player.
/// </summary>
/// <since_tizen> 5 </since_tizen>
public SphericalVideo SphericalVideo
private AdaptiveVariants _adaptiveVariants;
/// <summary>
- /// Gets the adaptive variants settings.
+ /// Gets the adaptive variants of the player.
/// </summary>
/// <since_tizen> 5 </since_tizen>
public AdaptiveVariants AdaptiveVariants
private AudioOffload _audioOffload;
/// <summary>
- /// Gets the setting for audio offload.
+ /// Gets the audio offload settings of the player.
/// </summary>
/// <since_tizen> 6 </since_tizen>
public AudioOffload AudioOffload
#region Methods
/// <summary>
- /// Gets the streaming download progress.
+ /// Gets the download progress of the streaming contents.
/// </summary>
/// <returns>The <see cref="DownloadProgress"/> containing current download progress.</returns>
/// <remarks>The player must be in the <see cref="PlayerState.Ready"/>, <see cref="PlayerState.Playing"/>,
}
/// <summary>
- /// Sets the subtitle path for playback.
+ /// Sets the subtitle file path for playback.
/// </summary>
/// <param name="path">The absolute path of the subtitle file, it can be NULL in the <see cref="PlayerState.Idle"/> state.</param>
/// <remarks>Only MicroDVD/SubViewer(*.sub), SAMI(*.smi), and SubRip(*.srt) subtitle formats are supported.
}
/// <summary>
- /// Removes the subtitle path.
+ /// Clears the the subtitle path of the media player.
/// </summary>
/// <remarks>The player must be in the <see cref="PlayerState.Idle"/> state.</remarks>
/// <exception cref="ObjectDisposedException">The player has already been disposed of.</exception>
}
/// <summary>
- /// Sets the offset for the subtitle.
+ /// Sets the seek offset for the subtitle.
/// </summary>
/// <param name="offset">The value indicating a desired offset in milliseconds.</param>
/// <remarks>The player must be in the <see cref="PlayerState.Playing"/> or <see cref="PlayerState.Paused"/> state.</remarks>
}
/// <summary>
- /// Unprepares the player.
+ /// Unprepares the media player.
/// </summary>
/// <remarks>
/// The most recently used source is reset and is no longer associated with the player. Playback is no longer possible.
}
/// <summary>
- /// Starts or resumes playback.
+ /// Starts or resumes playing the media content.
/// </summary>
/// <remarks>
/// Sound can be mixed with other sounds if you don't control the stream focus using <see cref="ApplyAudioStreamPolicy"/>.<br/>
}
/// <summary>
- /// Pauses the player.
+ /// Pauses playing the media content.
/// </summary>
/// <remarks>
/// The player must be in the <see cref="PlayerState.Playing"/> state.
}
/// <summary>
- /// Captures a video frame, asynchronously.
+ /// Captures the current frame of the video being played, asynchronously.
/// </summary>
/// <returns>A task that represents the asynchronous capture operation.</returns>
/// <feature>http://tizen.org/feature/multimedia.raw_video</feature>
}
/// <summary>
- /// Gets the play position in milliseconds.
+ /// Gets the current playback position in milliseconds of the media.
/// </summary>
/// <returns>The current position in milliseconds.</returns>
/// <remarks>The player must be in the <see cref="PlayerState.Ready"/>, <see cref="PlayerState.Playing"/>,
}
/// <summary>
- /// Sets the seek position for playback, asynchronously.
+ /// Sets the playback position in milliseconds of the player, asynchronously.
/// </summary>
/// <param name="position">The value indicating a desired position in milliseconds.</param>
/// <param name="accurate">The value indicating whether the operation performs with accuracy.</param>
}
/// <summary>
- /// Gets the play position in nanoseconds.
+ /// Gets the current playback position in nanoseconds of the media.
/// </summary>
/// <returns>The current position in nanoseconds.</returns>
/// <remarks>The player must be in the <see cref="PlayerState.Ready"/>, <see cref="PlayerState.Playing"/>,
}
/// <summary>
- /// Sets the seek position in nanoseconds for playback, asynchronously.
+ /// Sets the playback position in nanoseconds of the player, asynchronously.
/// </summary>
/// <param name="position">The value indicating a desired position in nanoseconds.</param>
/// <param name="accurate">The value indicating whether the operation performs with accuracy.</param>
}
/// <summary>
- /// Sets the playback rate.
+ /// Sets the playback rate of the player.
/// </summary>
/// <param name="rate">The value for the playback rate. Valid range is -5.0 to 5.0, inclusive.</param>
/// <remarks>
}
/// <summary>
- /// Applies the audio stream policy.
+ /// Applies the specified audio stream policy to the player.
/// </summary>
/// <param name="policy">The <see cref="AudioStreamPolicy"/> to apply.</param>
/// <remarks>
protected Player Player { get; }
/// <summary>
- /// Gets or sets the <see cref="PlayerDisplayMode"/>.
+ /// Gets or sets the <see cref="PlayerDisplayMode"/> of the player.
/// </summary>
/// <exception cref="InvalidOperationException">
/// Operation failed; internal error.
}
/// <summary>
- /// Sets the roi(region of interest).
+ /// Sets the ROI(Region Of Interest) for the video display.
/// </summary>
/// <param name="roi">The region.</param>
/// <remarks>
InternalError = ErrorCode.InvalidOperation,
/// <summary>
- /// No space.
+ /// No space on the device.
/// </summary>
NoSpaceOnDevice = PlayerErrorCode.NoSpaceOnDevice,
public enum StreamMetadataKey
{
/// <summary>
- /// Album.
+ /// The album name of the media content
/// </summary>
Album,
/// <summary>
- /// Artists.
+ /// The artist(s) of the media content.
/// </summary>
Artist,
/// <summary>
- /// Author.
+ /// The author(s) of the media content.
/// </summary>
Author,
/// <summary>
- /// Genre.
+ /// The genre(s) of the media content.
/// </summary>
Genre,
/// <summary>
- /// Title.
+ /// The title of the media content.
/// </summary>
Title,
/// <summary>
- /// Year.
+ /// The year of the media content.
/// </summary>
Year
}
}
/// <summary>
- /// Gets the duration of the updated subtitle.
+ /// Gets the duration in milliseconds of the updated subtitle.
/// </summary>
/// <since_tizen> 3 </since_tizen>
public uint Duration { get; }
}
/// <summary>
- /// Gets the packet containing the decoded frame.
+ /// Gets the media packet containing the decoded frame.
/// </summary>
/// <since_tizen> 3 </since_tizen>
public MediaPacket Packet { get; }