internal ShoutcastStream(Uri serverUrl, ShoutcastStreamFactoryConnectionSettings settings, SocketWrapper socketWrapper) { this.socket = socketWrapper; this.serverUrl = serverUrl; this.serverSettings = settings; StationInfo = new ServerStationInfo(); AudioInfo = new ServerAudioInfo(); cancelTokenSource = new CancellationTokenSource(); //MediaStreamSource = new MediaStreamSource(null); streamProcessor = new ShoutcastStreamProcessor(this, socket); }
private async Task ReconnectSocketsAsync() { cancelTokenSource.Token.ThrowIfCancellationRequested(); var result = await ShoutcastStreamFactory.ConnectInternalAsync(serverUrl, serverSettings); this.socket = SocketWrapperFactory.CreateSocketWrapper(result); cancelTokenSource = new CancellationTokenSource(); streamProcessor = new ShoutcastStreamProcessor(this, socket); }
private void DisconnectSockets() { streamProcessor = null; if (socket != null) { try { socket.Dispose(); } catch (ObjectDisposedException) { } socket = null; } }
private void DisconnectSockets() { streamProcessor = null; try { if (socketWriter != null) { socketWriter.DetachStream(); socketWriter.Dispose(); socketWriter = null; } } catch (Exception) { socketWriter = null; } try { if (socketReader != null) { socketReader.DetachStream(); socketReader.Dispose(); socketReader = null; } } catch (Exception) { socketReader = null; } if (socket != null) { try { socket.Dispose(); } catch (ObjectDisposedException) { } socket = null; } }