-/// Player
+/// Player
///
/// Copyright 2016 by Samsung Electronics, Inc.,
///
/// it only in accordance with the terms of the license agreement
/// you entered into with Samsung.
-
using System;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
int ret;
ret = Interop.Player.Create(out _playerHandle);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to create player" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Failed to create player");
// Initial get values
ret = Interop.Player.GetVolume(_playerHandle, out _leftVolume, out _rightVolume);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to get volume levels" + ret);
}
ret = Interop.Player.GetAudioLatencyMode(_playerHandle, out _audioLatencyMode);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to get Audio latency mode" + ret);
}
ret = Interop.Player.IsMuted(_playerHandle, out _mute);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to get mute status" + ret);
}
ret = Interop.Player.IsLooping(_playerHandle, out _isLooping);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to get loop status" + ret);
}
{
add
{
- if(_playbackCompleted == null)
+ if (_playbackCompleted == null)
{
RegisterPlaybackCompletedEvent();
}
remove
{
_playbackCompleted -= value;
- if(_playbackCompleted == null)
+ if (_playbackCompleted == null)
{
UnregisterPlaybackCompletedEvent();
}
{
add
{
- if(_playbackInterrupted == null)
+ if (_playbackInterrupted == null)
{
RegisterPlaybackInterruptedEvent();
}
remove
{
_playbackInterrupted -= value;
- if(_playbackInterrupted == null)
+ if (_playbackInterrupted == null)
{
UnregisterPlaybackInterruptedEvent();
}
{
add
{
- if(_playbackError == null)
+ if (_playbackError == null)
{
RegisterPlaybackErrorEvent();
}
remove
{
_playbackError -= value;
- if(_playbackError == null)
+ if (_playbackError == null)
{
UnregisterPlaybackErrorEvent();
}
}
- #if _MEDIA_PACKET_
+#if _MEDIA_PACKET_
TODO: Uncomment this after MediaPacket is implemented.
/// <summary>
/// VideoFrameCaptured event is raised when a video frame is decoded
}
}
}
- #endif
+#endif
/// <summary>
int state;
int ret = Interop.Player.GetState(_playerHandle, out state);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
PlayerErrorFactory.ThrowException(ret, "Get player state failed");
return (PlayerState)state;
{
set
{
- int ret = Interop.Player.SetVolume(_playerHandle, value, _rightVolume);
+ int ret = Interop.Player.SetVolume(_playerHandle, value, value);
- if(ret == (int)PlayerError.None)
+ if (ret == (int)PlayerError.None)
{
_leftVolume = value;
- } else
+ }
+ else
{
Log.Error(PlayerLog.LogTag, "Set volume failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "set volume failed");
{
set
{
- int ret = Interop.Player.SetVolume(_playerHandle, _leftVolume, value);
+ int ret = Interop.Player.SetVolume(_playerHandle, value, value);
- if(ret == (int)PlayerError.None)
+ if (ret == (int)PlayerError.None)
{
_rightVolume = value;
- } else
+ }
+ else
{
Log.Error(PlayerLog.LogTag, "Set volume failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "set volume failed");
{
set
{
- if(_audioLatencyMode != (int)value)
+ if (_audioLatencyMode != (int)value)
{
int ret = Interop.Player.SetAudioLatencyMode(_playerHandle, (int)value);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Set audio latency mode failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "set audio latency mode failed");
- } else
+ }
+ else
{
_audioLatencyMode = (int)value;
}
{
set
{
- if(_mute != value)
+ if (_mute != value)
{
int ret = Interop.Player.SetMute(_playerHandle, value);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Set mute failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "set mute failed");
- } else
+ }
+ else
{
_mute = value;
}
{
set
{
- if(_isLooping != value)
+ if (_isLooping != value)
{
int ret = Interop.Player.SetLooping(_playerHandle, value);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Set loop failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "set loop failed");
- } else
+ }
+ else
{
_isLooping = value;
}
{
int playPosition;
int ret = Interop.Player.GetPlayPosition(_playerHandle, out playPosition);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to get play position, " + (PlayerError)ret);
}
{
task.SetResult(true);
return;
- };
+ };
ret = Interop.Player.PrepareAsync(_playerHandle, cb, IntPtr.Zero);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
task.SetResult(false);
Log.Error(PlayerLog.LogTag, "Failed to prepare player" + (PlayerError)ret);
}
/// <summary>
- /// The most recently used media is reset and no longer associated with the player. Playback is no longer possible.
+ /// The most recently used media is reset and no longer associated with the player. Playback is no longer possible.
/// If you want to use the player again, you will have to set the data URI and call prepare() again. </summary>
public void Unprepare()
{
int ret = Interop.Player.Unprepare(_playerHandle);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to unprepare player" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Failed to unprepare player");
public void Start()
{
int ret = Interop.Player.Start(_playerHandle);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to start player" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Failed to start player");
public void Stop()
{
int ret = Interop.Player.Stop(_playerHandle);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to stop player" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Failed to stop player");
public void Pause()
{
int ret = Interop.Player.Pause(_playerHandle);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to pause player" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Failed to pause player");
public void SetSource(MediaSource source)
{
int ret;
- if(source.GetType() == typeof(MediaUriSource))
+ if (source.GetType() == typeof(MediaUriSource))
{
ret = Interop.Player.SetUri(_playerHandle, ((MediaUriSource)source).GetUri());
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to seturi" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Failed to set uri");
}
- } else if(source.GetType() == typeof(MediaBufferSource))
+ }
+ else if (source.GetType() == typeof(MediaBufferSource))
{
GCHandle pinnedArray = GCHandle.Alloc(((MediaBufferSource)source)._buffer, GCHandleType.Pinned);
IntPtr mem = pinnedArray.AddrOfPinnedObject();
ret = Interop.Player.SetMemoryBuffer(_playerHandle, mem, ((MediaBufferSource)source)._buffer.Length);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to set memory buffer" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Failed to set memory buffer");
}
- } else if(source.GetType() == typeof(MediaStreamSource))
+ }
+ else if (source.GetType() == typeof(MediaStreamSource))
{
// TODO: Handle MediaStream source after implementing MediaPacket module
((MediaStreamSource)source).SetHandle(_playerHandle);
return;
};
int ret = Interop.Player.SetPlayPosition(_playerHandle, milliseconds, accurate, cb, IntPtr.Zero);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to set playposition" + (PlayerError)ret);
task.SetResult(false);
public void SetPlaybackRate(float rate)
{
int ret = Interop.Player.SetPlaybackRate(_playerHandle, rate);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Set playback rate failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "set playback rate failed");
public void SetAudioStreamPolicy(AudioStreamPolicy policy)
{
int ret = Interop.Player.SetAudioPolicyInfo(_playerHandle, policy.Handle);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Set Audio stream policy failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Set Audio stream policy failed");
protected virtual void Dispose(bool disposing)
{
- if(!_disposed)
+ if (!_disposed)
{
- if(disposing)
+ if (disposing)
{
// To be used if there are any other disposable objects
}
- if(_playerHandle != IntPtr.Zero)
+ if (_playerHandle != IntPtr.Zero)
{
Interop.Player.Destroy(_playerHandle);
_playerHandle = IntPtr.Zero;
_playbackCompleted?.Invoke(this, eventArgs);
};
int ret = Interop.Player.SetCompletedCb(_playerHandle, _playbackCompletedCallback, IntPtr.Zero);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Setting PlaybackCompleted callback failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Setting PlaybackCompleted callback failed");
private void UnregisterPlaybackCompletedEvent()
{
int ret = Interop.Player.UnsetCompletedCb(_playerHandle);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Unsetting PlaybackCompleted callback failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Unsetting PlaybackCompleted callback failed");
_playbackInterrupted?.Invoke(this, eventArgs);
};
int ret = Interop.Player.SetInterruptedCb(_playerHandle, _playbackInterruptedCallback, IntPtr.Zero);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Setting PlaybackInterrupted callback failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Setting PlaybackInterrupted callback failed");
private void UnregisterPlaybackInterruptedEvent()
{
int ret = Interop.Player.UnsetInterruptedCb(_playerHandle);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Unsetting PlaybackInterrupted callback failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Unsetting PlaybackInterrupted callback failed");
_playbackError?.Invoke(this, eventArgs);
};
int ret = Interop.Player.SetErrorCb(_playerHandle, _playbackErrorCallback, IntPtr.Zero);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Setting PlaybackError callback failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Setting PlaybackError callback failed");
private void UnregisterPlaybackErrorEvent()
{
int ret = Interop.Player.UnsetErrorCb(_playerHandle);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Unsetting PlaybackError callback failed" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Unsetting PlaybackError callback failed");
};
int ret = Interop.Player.CaptureVideo(_playerHandle, cb, IntPtr.Zero);
- if(ret != (int)PlayerError.None)
+ if (ret != (int)PlayerError.None)
{
Log.Error(PlayerLog.LogTag, "Failed to capture video" + (PlayerError)ret);
PlayerErrorFactory.ThrowException(ret, "Failed to capture video");
- #if _MEDIA_PACKET_
+#if _MEDIA_PACKET_
//TODO: Uncomment this when MediaPacket is implemented
private void RegisterVideoFrameDecodedEvent()
{
{
Interop.Player.UnsetMediaPacketVideoFrameDecodedCb(_playerHandle);
}
- #endif
+#endif
}
}
-/// PlayerContentInfo
+/// PlayerContentInfo
///
/// Copyright 2016 by Samsung Electronics, Inc.,
///
/// you entered into with Samsung.
using System;
+using System.Runtime.InteropServices;
namespace Tizen.Multimedia
{
public class PlayerContentInfo
{
- internal IntPtr _playerHandle;
+ internal IntPtr _playerHandle;
- internal PlayerContentInfo()
- {
- }
+ internal PlayerContentInfo()
+ {
+ }
+
+ private string GetContentInfo(ContentInfoKey key)
+ {
+ IntPtr ptr = IntPtr.Zero;
+
+ try
+ {
+ int ret = Interop.Player.GetContentInfo(_playerHandle, (int)key, out ptr);
+ if (ret != (int)PlayerError.None)
+ {
+ Log.Error(PlayerLog.LogTag, "Failed to get album info" + (PlayerError)ret);
+ return "";
+ }
+
+ return Marshal.PtrToStringAnsi(ptr);
+ }
+ finally
+ {
+ Interop.Libc.Free(ptr);
+ }
+ }
/// <summary>
/// Metadata - Album
{
get
{
- string album;
- int ret = Interop.Player.GetContentInfo(_playerHandle, (int)ContentInfoKey.Album, out album);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get album info" + (PlayerError)ret);
- }
- return album;
+ return GetContentInfo(ContentInfoKey.Album);
}
}
{
get
{
- string artist;
- int ret = Interop.Player.GetContentInfo(_playerHandle, (int)ContentInfoKey.Artist, out artist);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get artist info" + (PlayerError)ret);
- }
-
- return artist;
+ return GetContentInfo(ContentInfoKey.Artist);
}
}
{
get
{
- string author;
- int ret = Interop.Player.GetContentInfo(_playerHandle, (int)ContentInfoKey.Author, out author);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get author info" + (PlayerError)ret);
- }
- return author;
+ return GetContentInfo(ContentInfoKey.Author);
}
}
{
get
{
- string genre;
- int ret = Interop.Player.GetContentInfo(_playerHandle, (int)ContentInfoKey.Genre, out genre);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get genre info" + (PlayerError)ret);
- }
-
- return genre;
+ return GetContentInfo(ContentInfoKey.Genre);
}
}
{
get
{
- string title;
- int ret = Interop.Player.GetContentInfo(_playerHandle, (int)ContentInfoKey.Title, out title);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get title info" + (PlayerError)ret);
- }
- return title;
+ return GetContentInfo(ContentInfoKey.Title);
}
}
{
get
{
- string year;
- int ret = Interop.Player.GetContentInfo(_playerHandle, (int)ContentInfoKey.Year, out year);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get title info" + (PlayerError)ret);
- }
- return year;
+ return GetContentInfo(ContentInfoKey.Year);
}
}
-/// Audio Stream Information
+/// Audio Stream Information
///
/// Copyright 2016 by Samsung Electronics, Inc.,
///
/// </remarks>
public class StreamInformation
{
- internal IntPtr _playerHandle;
- internal PlayerContentInfo _contentInfo;
+ internal IntPtr _playerHandle;
+ internal PlayerContentInfo _contentInfo;
- internal StreamInformation()
- {
- }
+ internal StreamInformation()
+ {
+ }
/// <summary>
/// Get album art.
/// </summary>
/// <value> byte[] </value>
- public byte[] AlbumArt
+ public byte[] AlbumArt
{
- get
+ get
{
- int ret, size;
- IntPtr art;
- ret = Interop.Player.GetAlbumArt(_playerHandle, out art, out size);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get album art" + (PlayerError)ret);
- Console.WriteLine("GetAlbumArt() failed " + ret);
- }
- else
- {
- byte[] albumArt;
- albumArt = new byte[size];
- Marshal.Copy(art, albumArt, 0, size);
- return albumArt;
- }
- return null;
+ int ret, size;
+ IntPtr art;
+ ret = Interop.Player.GetAlbumArt(_playerHandle, out art, out size);
+ if (ret != (int)PlayerError.None)
+ {
+ Log.Error(PlayerLog.LogTag, "Failed to get album art" + (PlayerError)ret);
+ Console.WriteLine("GetAlbumArt() failed " + ret);
+ }
+ else
+ {
+ byte[] albumArt;
+ albumArt = new byte[size];
+ Marshal.Copy(art, albumArt, 0, size);
+ return albumArt;
+ }
+ return null;
}
}
/// Get AudioCodec.
/// </summary>
/// <value> AudioCodec string </value>
- public string AudioCodec
+ public string AudioCodec
{
get
{
- string audioCodec, videoCodec;
- int ret = Interop.Player.GetCodecInfo(_playerHandle, out audioCodec, out videoCodec);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get codec info" + (PlayerError)ret);
- }
- return audioCodec;
+ IntPtr audioCodec = IntPtr.Zero, videoCodec = IntPtr.Zero;
+ try
+ {
+ int ret = Interop.Player.GetCodecInfo(_playerHandle, out audioCodec, out videoCodec);
+ if (ret != (int)PlayerError.None)
+ {
+ Log.Error(PlayerLog.LogTag, "Failed to get codec info" + (PlayerError)ret);
+ }
+
+ return Marshal.PtrToStringAnsi(audioCodec);
+ }
+ finally
+ {
+ Interop.Libc.Free(audioCodec);
+ Interop.Libc.Free(videoCodec);
+ }
}
}
/// Get Duration.
/// </summary>
/// <value> duration in milliseconds </value>
- public int Duration
+ public int Duration
{
get
{
- int duration;
- int ret = Interop.Player.GetDuration(_playerHandle, out duration);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get duration info" + (PlayerError)ret);
- }
+ int duration;
+ int ret = Interop.Player.GetDuration(_playerHandle, out duration);
+ if (ret != (int)PlayerError.None)
+ {
+ Log.Error(PlayerLog.LogTag, "Failed to get duration info" + (PlayerError)ret);
+ }
return duration;
}
}
/// Get Sample rate.
/// </summary>
/// <value> The audio sample rate [Hz] </value>
- public int AudioSampleRate
+ public int AudioSampleRate
{
get
{
- int sampleRate, channels, bitRate;
- int ret = Interop.Player.GetAudioStreamInfo(_playerHandle, out sampleRate, out channels, out bitRate);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get audio stream info" + (PlayerError)ret);
- }
- return sampleRate;
+ int sampleRate, channels, bitRate;
+ int ret = Interop.Player.GetAudioStreamInfo(_playerHandle, out sampleRate, out channels, out bitRate);
+ if (ret != (int)PlayerError.None)
+ {
+ Log.Error(PlayerLog.LogTag, "Failed to get audio stream info" + (PlayerError)ret);
+ }
+ return sampleRate;
}
}
/// Channels
/// </summary>
/// <value> The audio channels </value>
- public int AudioChannels
+ public int AudioChannels
{
get
{
- int sampleRate, channels, bitRate;
- int ret = Interop.Player.GetAudioStreamInfo(_playerHandle, out sampleRate, out channels, out bitRate);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get audio channels info" + (PlayerError)ret);
- }
- return channels;
+ int sampleRate, channels, bitRate;
+ int ret = Interop.Player.GetAudioStreamInfo(_playerHandle, out sampleRate, out channels, out bitRate);
+ if (ret != (int)PlayerError.None)
+ {
+ Log.Error(PlayerLog.LogTag, "Failed to get audio channels info" + (PlayerError)ret);
+ }
+ return channels;
}
}
{
get
{
- int sampleRate, channels, bitRate;
- int ret = Interop.Player.GetAudioStreamInfo(_playerHandle, out sampleRate, out channels, out bitRate);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get audio bitrate info" + (PlayerError)ret);
- }
- return bitRate;
+ int sampleRate, channels, bitRate;
+ int ret = Interop.Player.GetAudioStreamInfo(_playerHandle, out sampleRate, out channels, out bitRate);
+ if (ret != (int)PlayerError.None)
+ {
+ Log.Error(PlayerLog.LogTag, "Failed to get audio bitrate info" + (PlayerError)ret);
+ }
+ return bitRate;
}
}
{
get
{
- string audioCodec, videoCodec;
- int ret = Interop.Player.GetCodecInfo(_playerHandle, out audioCodec, out videoCodec);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get video codec info" + (PlayerError)ret);
- }
- return videoCodec;
+ IntPtr audioCodec = IntPtr.Zero, videoCodec = IntPtr.Zero;
+ try
+ {
+ int ret = Interop.Player.GetCodecInfo(_playerHandle, out audioCodec, out videoCodec);
+ if (ret != (int)PlayerError.None)
+ {
+ Log.Error(PlayerLog.LogTag, "Failed to get codec info" + (PlayerError)ret);
+ }
+ return Marshal.PtrToStringAnsi(videoCodec);
+ }
+ finally
+ {
+ Interop.Libc.Free(audioCodec);
+ Interop.Libc.Free(videoCodec);
+ }
}
}
{
get
{
- int fps, bitRate;
- int ret = Interop.Player.GetVideoStreamInfo(_playerHandle, out fps, out bitRate);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get video fps info" + (PlayerError)ret);
- }
- return fps;
+ int fps, bitRate;
+ int ret = Interop.Player.GetVideoStreamInfo(_playerHandle, out fps, out bitRate);
+ if (ret != (int)PlayerError.None)
+ {
+ Log.Error(PlayerLog.LogTag, "Failed to get video fps info" + (PlayerError)ret);
+ }
+ return fps;
}
}
{
get
{
- int fps, bitRate;
- int ret = Interop.Player.GetVideoStreamInfo(_playerHandle, out fps, out bitRate);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get video bitrate info" + (PlayerError)ret);
- }
- return bitRate;
+ int fps, bitRate;
+ int ret = Interop.Player.GetVideoStreamInfo(_playerHandle, out fps, out bitRate);
+ if (ret != (int)PlayerError.None)
+ {
+ Log.Error(PlayerLog.LogTag, "Failed to get video bitrate info" + (PlayerError)ret);
+ }
+ return bitRate;
}
}
{
get
{
- int height, width;
- int ret = Interop.Player.GetVideoSize(_playerHandle, out width, out height);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get video height" + (PlayerError)ret);
- }
- return height;
+ int height, width;
+ int ret = Interop.Player.GetVideoSize(_playerHandle, out width, out height);
+ if (ret != (int)PlayerError.None)
+ {
+ Log.Error(PlayerLog.LogTag, "Failed to get video height" + (PlayerError)ret);
+ }
+ return height;
}
}
{
get
{
- int height, width;
- int ret = Interop.Player.GetVideoSize(_playerHandle, out width, out height);
- if(ret != (int)PlayerError.None)
- {
- Log.Error(PlayerLog.LogTag, "Failed to get video width" + (PlayerError)ret);
- }
- return width;
+ int height, width;
+ int ret = Interop.Player.GetVideoSize(_playerHandle, out width, out height);
+ if (ret != (int)PlayerError.None)
+ {
+ Log.Error(PlayerLog.LogTag, "Failed to get video width" + (PlayerError)ret);
+ }
+ return width;
}
}
}
}
-}
\ No newline at end of file
+}