Fix no duration crash on media player
This commit is contained in:
parent
db1a076132
commit
5dcb27ada7
@ -24,9 +24,18 @@ class _MediaPlayerProgressBarState extends State<MediaPlayerProgressBar> {
|
||||
final MediaPlayerEntity entity = entityModel.entityWrapper.entity;
|
||||
double progress;
|
||||
DateTime lastUpdated = DateTime.tryParse("${entity.attributes["media_position_updated_at"]}")?.toLocal();
|
||||
if (lastUpdated != null) {
|
||||
Duration duration = Duration(seconds: entity._getIntAttributeValue("media_duration") ?? 1);
|
||||
Duration position = Duration(seconds: entity._getIntAttributeValue("media_position") ?? 0);
|
||||
Duration duration;
|
||||
Duration position;
|
||||
int durationInSeconds = entity._getIntAttributeValue("media_duration");
|
||||
if (durationInSeconds != null) {
|
||||
duration = Duration(seconds: durationInSeconds);
|
||||
}
|
||||
int positionInSeconds = entity._getIntAttributeValue("media_position");
|
||||
if (positionInSeconds != null) {
|
||||
position = Duration(
|
||||
seconds: positionInSeconds);
|
||||
}
|
||||
if (lastUpdated != null && duration != null && position != null) {
|
||||
int currentPosition = position.inSeconds;
|
||||
int differenceInSeconds = DateTime
|
||||
.now()
|
||||
|
@ -33,11 +33,18 @@ class _MediaPlayerSeekBarState extends State<MediaPlayerSeekBar> {
|
||||
final MediaPlayerEntity entity = entityModel.entityWrapper.entity;
|
||||
DateTime lastUpdated = DateTime.tryParse("${
|
||||
entity.attributes["media_position_updated_at"]}")?.toLocal();
|
||||
if (lastUpdated != null) {
|
||||
Duration duration = Duration(
|
||||
seconds: entity._getIntAttributeValue("media_duration") ?? 1);
|
||||
Duration position = Duration(
|
||||
seconds: entity._getIntAttributeValue("media_position") ?? 0);
|
||||
Duration duration;
|
||||
Duration position;
|
||||
int durationInSeconds = entity._getIntAttributeValue("media_duration");
|
||||
if (durationInSeconds != null) {
|
||||
duration = Duration(seconds: durationInSeconds);
|
||||
}
|
||||
int positionInSeconds = entity._getIntAttributeValue("media_position");
|
||||
if (positionInSeconds != null) {
|
||||
position = Duration(
|
||||
seconds: positionInSeconds);
|
||||
}
|
||||
if (lastUpdated != null && duration != null && position != null) {
|
||||
if (entity.state == EntityState.playing && !_seekStarted &&
|
||||
!_changedHere) {
|
||||
_currentPosition = position.inSeconds.toDouble();
|
||||
@ -45,7 +52,7 @@ class _MediaPlayerSeekBarState extends State<MediaPlayerSeekBar> {
|
||||
.now()
|
||||
.difference(lastUpdated)
|
||||
.inSeconds;
|
||||
_currentPosition = (_currentPosition <= duration.inSeconds) ? _currentPosition + differenceInSeconds : duration.inSeconds;
|
||||
_currentPosition = ((_currentPosition + differenceInSeconds) <= duration.inSeconds) ? (_currentPosition + differenceInSeconds) : duration.inSeconds.toDouble();
|
||||
} else if (_changedHere) {
|
||||
_changedHere = false;
|
||||
}
|
||||
|
@ -133,7 +133,7 @@ EventBus eventBus = new EventBus();
|
||||
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
|
||||
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();
|
||||
const String appName = "HA Client";
|
||||
const appVersion = "0.6.6";
|
||||
const appVersion = "0.6.7-alpha1";
|
||||
|
||||
void main() async {
|
||||
FlutterError.onError = (errorDetails) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
name: hass_client
|
||||
description: Home Assistant Android Client
|
||||
|
||||
version: 0.6.6+662
|
||||
version: 0.6.7+670
|
||||
|
||||
environment:
|
||||
sdk: ">=2.0.0-dev.68.0 <3.0.0"
|
||||
|
Reference in New Issue
Block a user