public bool PlayUri(string RadioUri) { try { lock (LockObject) { if (TempUpPlayer != null) { lock (TempUpPlayer) { TempUpPlayer.OnStartPlay -= TempUpPlayer_OnStartPlay; TempUpPlayer.OnStoped -= TempUpPlayer_OnStoped; TempUpPlayer.OnNewTrack -= TempUpPlayer_OnNewTrack; TempUpPlayer.OnError -= TempUpPlayer_OnError; TempUpPlayer.OnFftCalculated -= TempUpPlayer_OnFftCalculated; TempUpPlayer.Stop(); } } TempUpPlayer = new StreamPlayer(); TempUpPlayer.OnStartPlay += TempUpPlayer_OnStartPlay; TempUpPlayer.OnStoped += TempUpPlayer_OnStoped; TempUpPlayer.OnNewTrack += TempUpPlayer_OnNewTrack; TempUpPlayer.OnError += TempUpPlayer_OnError; TempUpPlayer.OnFftCalculated += TempUpPlayer_OnFftCalculated; TempUpPlayer.Volume = MasterVolume; TempUpPlayer.Play(RadioUri); IsPlaying = true; } return(true); } catch (Exception e) { // Console.WriteLine(e.Message); return(false); } }
public void PlayRadio(string url) { if (_oldPlayer != null) { _oldPlayer.VolumeDownAndStop(); _oldPlayer = null; } if (!string.IsNullOrEmpty(url)) { _oldPlayer = _temp; _temp = new StreamPlayer(this); _temp.OnError += _temp_OnError; _temp.OnStartPlay += _temp_OnStartPlay; _temp.OnStoped += _temp_OnStoped; ShoutcastStream s = new ShoutcastStream(url); s.StreamTitleChanged += (a, b) => { if (OnTrack != null) { OnTrack(((ShoutcastStream)a).StreamTitle); } }; _temp.Play(s); //OnTrack } _radioUrl = url; }
void TempUpPlayer_OnError(StreamPlayer obj) { lock (LockObject) { if (VolumeDownPlayer == null) { if (VolumeUpPlayer != null) { VolumeDownPlayer = VolumeUpPlayer; VolumeDownPlayer.VolumeDown(); } } else { if (VolumeUpPlayer != null) { VolumeUpPlayer.Stop(); //VolumeUpPlayer.Dispose(); VolumeUpPlayer = null; } } VolumeUpPlayer = null; TempUpPlayer = null; } IsPlaying = false; if (OnError != null) { OnError(); } }
void TempUpPlayer_OnNewTrack(StreamPlayer arg1, TrackInfo arg2) { if (OnTrack != null) { OnTrack(arg2); } }
private void _filePlayer_OnStartPlay(StreamPlayer obj) { lock ( _lockObject ) { StopRadio(); obj.VolumeUp(); } }
public static StreamPlayer Create(MusicStream Wave) { var Return = new StreamPlayer(); Return.Init(Wave); return(Return); }
void TempUpPlayer_OnStartPlay(StreamPlayer obj) { lock (LockObject) { if (VolumeDownPlayer == null) { if (VolumeUpPlayer != null) { VolumeDownPlayer = VolumeUpPlayer; VolumeDownPlayer.VolumeDown(); } } else { if (VolumeUpPlayer != null) { VolumeUpPlayer.Stop(); //VolumeUpPlayer.Dispose(); VolumeUpPlayer = null; } } VolumeUpPlayer = obj; VolumeUpPlayer.VolumeUp(); TempUpPlayer = null; } if (OnStart != null) { OnStart(); } }
/// <summary> /// 关闭并删除一个Session /// </summary> /// <param name="session"></param> public static void DeleteSession(ref StreamPlayer session) { session.DestructorStreamPlayer(); Native.Invoke <StreamDecoder.DeleteSession>(StreamDecoder.streamDecoder_dll, session.session); session.session = IntPtr.Zero; session = null; }
public static StreamPlayer Create(Stream Content, bool Loop = false, float Volume = 1) { var Return = new StreamPlayer(); Return.Init(Content, Loop, Volume); return(Return); }
public PlatformPlayer(AvService avService, SharpDX.Direct2D1.Device d2DDevice, SharpDX.WIC.ImagingFactory factory) { underlyingPlayer = avService.GetStreamPlayer(gpu: true); Playback = underlyingPlayer.Duration .Select(duration => new StreamPlayback(d2DDevice, factory, underlyingPlayer, duration)) .DisposeCurrentOnNext(); }
// Use this for initialization void Start() { rimg.transform.parent.gameObject.SetActive(false); mat = rimg.material; #if UNITY_EDITOR StreamDecoder.dllPath = Application.streamingAssetsPath + "/../../../../bin/"; #else StreamDecoder.dllPath = Application.streamingAssetsPath + "/../../../../../bin/"; #endif adbController.adbPath = StreamDecoder.dllPath + "adb.exe"; //启动ADB adbController.AdbStartServer(); StreamDecoder.LoadLibrary(); player = StreamPlayer.CreateSession(); player.SetOption(OptionType.DataCacheSize, 2000000); player.SetOption(OptionType.DemuxTimeout, 2000); //player.SetOption(OptionType.PushFrameInterval, 0); player.SetOption(OptionType.AlwaysWaitBitStream, 1); //player.SetOption(OptionType.WaitBitStreamTimeout, waitBitStreamTimeout); player.SetOption(OptionType.AutoDecode, 1); player.SetOption(OptionType.DecodeThreadCount, 0); //player.SetOption(OptionType.UseCPUConvertYUV, 0); //player.SetOption(OptionType.ConvertPixelFormat, (int)PixelFormat.RGBA); //player.SetOption(OptionType.AsyncUpdate, 0); player.SetPlayerCb(null, OnFrame); }
bool isDeleted(StreamPlayer sp) { if (sp == null) { return(true); } return(sp.IsDeleted); }
//void DowloadAndPlayYoutube(string code) { // MemoryStream ms = new MemoryStream(); // VideoInfo audio; // try { // string link = "http://www.youtube.com/watch?v=" + code; // IEnumerable<VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls( link, false ); // audio = (from b in videoInfos // orderby b.AudioBitrate descending // where b.CanExtractAudio // select b).First(); // if ( audio.RequiresDecryption ) // DownloadUrlResolver.DecryptDownloadUrl( audio ); // var downloader = new MemoryAudioDownloader( audio, ms ); // downloader.Execute(); // // ms.Position = 0; // ms = new MemoryStream( ms.ToArray() ); // } catch ( Exception erer) { // _currentYoutubeThread = null; // nextFile(); // return; // } // lock ( _lockObject ) { // if ( _filePlayer != null ) { // _filePlayer.VolumeDownAndStop(); // _filePlayer = null; // } // _filePlayer = new StreamPlayer( this ); // _filePlayer.OnError += _filePlayer_OnStoped; // _filePlayer.OnStartPlay += _filePlayer_OnStartPlay; // _filePlayer.OnStoped += _filePlayer_OnStoped; // if ( OnTrack != null ) // OnTrack( audio.Title ); // _filePlayer.Play( ms ); // } //} public void CancelCurrentTrack() { if (_filePlayer != null) { _filePlayer.VolumeDownAndStop(); _filePlayer = null; } }
// Constructor public MusicEntry(ulong guildId, IVoiceChannel voiceChannel, IAudioClient audioClient, ISocketMessageChannel messageChannel, List <Stream> streams) { MessageChannel = messageChannel; VoiceChannel = voiceChannel; MusicPlayer = new MusicPlayer(guildId, audioClient); StreamPlayer = new StreamPlayer(guildId, audioClient, streams); }
public void DeleteSession() { if (player == null) { return; } StreamPlayer.DeleteSession(ref player); }
public StreamPlayback(SharpDX.Direct2D1.Device device, SharpDX.WIC.ImagingFactory factory, StreamPlayer player, TimeSpan?duration) { this.player = player; context = new DeviceContext(device, DeviceContextOptions.EnableMultithreadedOptimizations); Duration = duration; CurrentFrame = player.CurrentTime.Select(time => CreateFrame(player.Surface, time)).DisposeCurrentOnNext(); this.factory = factory; }
private async void StreamPlayer_PlayerStarted(StreamPlayer player, Stream currentStream) { if (!entries.TryGetValue(player.GuildId, out MusicEntry entry)) { return; } await entry.MessageChannel.SendEmbedMessageAsync("Stream Player", $"Currently streaming: **{currentStream.Title}**.", Colors.GREEN); }
public override Playable CreatePlayable(PlayableGraph graph, GameObject owner) { var playable = ScriptPlayable <AlembicShotPlayable> .Create(graph); var behaviour = playable.GetBehaviour(); m_stream = StreamPlayer.Resolve(graph.GetResolver()); behaviour.streamPlayer = m_stream; return(playable); }
public void DeleteSession() { isInSendThread = false; if (player == null) { return; } StreamPlayer.DeleteSession(ref player); }
private void _temp_OnStartPlay(StreamPlayer obj) { if (_oldPlayer != null) { _oldPlayer.VolumeDownAndStop(); _oldPlayer = null; } obj.VolumeUp(); }
public PlatformFramebufferPlayer(AvService avService) { underlyingPlayer = avService.GetStreamPlayer(gpu: false); Playback = underlyingPlayer.Duration .Select(duration => new FramebufferStreamPlayback(underlyingPlayer, duration)); Playback.Subscribe(playback => { currentPlayback?.Dispose(); currentPlayback = playback; }); }
public void VolumeUp() { ThreadPool.QueueUserWorkItem(new WaitCallback((a) => { StreamPlayer ip = a as StreamPlayer; for (float v = 0; v < 1.0f; v += 0.01f) { ip.volumeProvider.Volume = MasterVolume * v; LocalVolume = v; Thread.Sleep(15); } }), this); }
private void OnDestroy() { CloseServer(); if (player != null) { StreamPlayer.DeleteSession(ref player); } StreamDecoder.FreeLibrary(); isExit = true; }
void TempUpPlayer_OnStoped(StreamPlayer obj) { lock (LockObject) { if (VolumeDownPlayer == obj) { VolumeDownPlayer = null; } if (VolumeUpPlayer == obj) { VolumeUpPlayer = null; } } }
public void StopRadio() { if (_oldPlayer != null) { _oldPlayer.VolumeDownAndStop(); _oldPlayer = null; } if (_temp != null) { _temp.VolumeDownAndStop(); _temp = null; } }
public void VolumeUp() { ThreadPool.QueueUserWorkItem(new WaitCallback((a) => { StreamPlayer ip = a as StreamPlayer; for (float v = 0; v < 1.0f; v += 0.01f) { if (ip.volumeProvider != null) { ip.volumeProvider.Volume = (float)CommandFactory.GlobalVolume * v; } LocalVolume = v; Thread.Sleep(15); } }), this); }
private async void StreamPlayer_PlayerStopped(StreamPlayer player) { if (!entries.TryGetValue(player.GuildId, out MusicEntry entry)) { return; } if (plannedStop) { plannedStop = false; return; } await entry.MessageChannel.SendEmbedMessageAsync("Stream Player", "Player stopped.", Colors.BLACK); }
private void _filePlayer_OnStoped(StreamPlayer obj) { lock ( _lockObject ) { if (_filePlayer != null) { _filePlayer.VolumeDownAndStop(); _filePlayer = null; } // check next mp3* if (nextFile()) { PlayRadio(_radioUrl); } } }
public void PlayFile(string filePath) { lock ( _lockObject ) { if (_filePlayer != null) { _filePlayer.VolumeDownAndStop(); _filePlayer = null; } _filePlayer = new StreamPlayer(this); _filePlayer.OnError += _filePlayer_OnStoped; _filePlayer.OnStartPlay += _filePlayer_OnStartPlay; _filePlayer.OnStoped += _filePlayer_OnStoped; _filePlayer.Play(new FileStream(filePath, FileMode.Open, FileAccess.Read)); } }
public void CreateSession() { if (player != null) { return; } player = StreamPlayer.CreateSession(); player.SetOption(OptionType.DataCacheSize, bitStreamCacheSize); player.SetOption(OptionType.DemuxTimeout, demuxTimeout); player.SetOption(OptionType.PushFrameInterval, pushFrameInterval); player.SetOption(OptionType.AlwaysWaitBitStream, alwaysWaitBitStream ? 1 : 0); player.SetOption(OptionType.WaitBitStreamTimeout, waitBitStreamTimeout); player.SetOption(OptionType.AutoDecode, autoDecode ? 1 : 0); player.SetOption(OptionType.DecodeThreadCount, decodeThreadCount); player.SetOption(OptionType.UseCPUConvertYUV, useCPUConvertYUV ? 1 : 0); player.SetOption(OptionType.ConvertPixelFormat, (int)PixelFormat.RGBA); player.SetOption(OptionType.AsyncUpdate, 0); player.SetEventCallBack(OnEvent, OnDrawFrame, this); }