seek method
Implementation
Future<void> seek(double seconds, {SeekMode mode = SeekMode.relative}) async {
// tracks if the seek event has been emitted
bool seekEventStarted = false;
Socket observeSocket = await Socket.connect(
InternetAddress(socketURI, type: InternetAddressType.unix), 0);
await command('seek', [seconds.toString(), mode.name, 'exact']);
observeSocket.listen((event) {
var messages = utf8.decode(event).split("\n");
for (var message in messages) {
if (message.isNotEmpty) {
Map messageMap = jsonDecode(message);
if (messageMap.containsKey("event")) {
if (messageMap["event"] == 'seek') {
seekEventStarted = true;
}
// resolve the promise if the playback-restart event was fired
else if (seekEventStarted &&
messageMap["event"] == 'playback-restart') {
observeSocket.destroy();
}
}
}
}
});
}