diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/playback/StreamingPlaybackService.java b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/playback/StreamingPlaybackService.java index 3304e2c06..8512b6fcf 100644 --- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/playback/StreamingPlaybackService.java +++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/playback/StreamingPlaybackService.java @@ -228,7 +228,11 @@ public class StreamingPlaybackService implements PlaybackService { if (state != PlaybackState.Paused) { schedulePausedShutdown(); killAudioFocus(); - context.currentPlayer.pause(); + + if (context.currentPlayer != null) { + context.currentPlayer.pause(); + } + setState(PlaybackState.Paused); } } diff --git a/src/plugins/websocket_remote/WebSocketServer.cpp b/src/plugins/websocket_remote/WebSocketServer.cpp index 3060f0c51..1a6aa7a19 100644 --- a/src/plugins/websocket_remote/WebSocketServer.cpp +++ b/src/plugins/websocket_remote/WebSocketServer.cpp @@ -35,6 +35,8 @@ #include "WebSocketServer.h" #include "Constants.h" +#include + #include #include @@ -334,8 +336,15 @@ void WebSocketServer::Broadcast(const std::string& name, json& options) { std::string str = msg.dump(); auto rl = connectionLock.Read(); - for (const auto &keyValue : this->connections) { - wss->send(keyValue.first, str.c_str(), websocketpp::frame::opcode::text); + try { + if (wss) { + for (const auto &keyValue : this->connections) { + wss->send(keyValue.first, str.c_str(), websocketpp::frame::opcode::text); + } + } + } + catch (...) { + std::cerr << "broadcast failed (stale connection?)\n"; } }