Code Monkey home page Code Monkey logo

flutterradioplayer's People

Contributors

buraktamturk avatar cjamcu avatar janstorm avatar sithira avatar yusriltakeuchi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flutterradioplayer's Issues

Getting 'fatal error: Unexpectedly found nilwhile unwrapping an Optional value' in iOS at runtime

Error: 'fatal error: Unexpectedly found nil while unwrapping an Optional value: file /flutter_radio_player-1.0.4/ios/Classes/SwiftFlutterRadioPlayerPlugin.swift, line 100'

Flutter version: 1.18.0-6.0.pre.80 (master channel)

code in Flutter:
import 'package:flutter/material.dart';
import 'package:flutter_radio_player/flutter_radio_player.dart';
main() => runApp(RadioApp());
class RadioApp extends StatefulWidget {
@OverRide
_RadioAppState createState() => _RadioAppState();
}

class _RadioAppState extends State {
FlutterRadioPlayer _flutterRadioPlayer = new FlutterRadioPlayer();

String url = '';

@OverRide
void initState() {
print('initializing');
super.initState();
audioStart();
}

Future audioStart() async {
await _flutterRadioPlayer.init(
"Flutter Radio Example", "Live", url, "true");
}

@OverRide
Widget build(BuildContext context) {
return MaterialApp(
title: 'SHOUT Radio',
debugShowCheckedModeBanner: false,
home: SafeArea(child: Scaffold()));
}
}

Couldn't get localbroadcastmanager version 1.0.0

FAILURE: Build failed with an exception.

  • What went wrong:
    Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.

Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.
Could not determine artifacts for androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
> Could not get resource 'https://dl.google.com/dl/android/maven2/androidx/localbroadcastmanager/localbroadcastmanager/1.0.0/localbroadcastmanager-1.0.0.aar'.
> Could not HEAD 'https://dl.google.com/dl/android/maven2/androidx/localbroadcastmanager/localbroadcastmanager/1.0.0/localbroadcastmanager-1.0.0.aar'.
> Unsupported record version Unknown-84.84

I'm facing this error and can you help me something what was wrong?

D/AndroidRuntime(31948): Shutting down VM
E/AndroidRuntime(31948): FATAL EXCEPTION: main
E/AndroidRuntime(31948): Process: com.nwt.shwe_fm, PID: 31948
E/AndroidRuntime(31948): java.lang.NoSuchMethodError: No static method getLooper()Landroid/os/Looper; in class Lc/c/a/b/j2/j0; or its super classes (declaration of 'c.c.a.b.j2.j0' appears in /data/app/com.nwt.shwe_fm-2/base.apk)
E/AndroidRuntime(31948): at c.c.a.b.b2.a.a.(:453)
E/AndroidRuntime(31948): at me.sithiramunasinghe.flutter.flutter_radio_player.core.StreamingCore.onStartCommand(:210)
E/AndroidRuntime(31948): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3043)
E/AndroidRuntime(31948): at android.app.ActivityThread.access$2300(ActivityThread.java:153)
E/AndroidRuntime(31948): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
E/AndroidRuntime(31948): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(31948): at android.os.Looper.loop(Looper.java:154)
E/AndroidRuntime(31948): at android.app.ActivityThread.main(ActivityThread.java:5527)
E/AndroidRuntime(31948): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(31948): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
E/AndroidRuntime(31948): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
E/MQSEventManagerDelegate(31948): failed to get MQSService.
I/Process (31948): Sending signal. PID: 31948 SIG: 9

Metadata Track get artist, song etc. in different Text Widgets

Hello, in your example I saw that your package makes it possible to get the current Artist and Song but both things are displayed in one TextWidget with snapshot.data.

Is it possible to show Artist and Song in different Text Widgets?

Do your package also provides the ability to show the album cover or the album name or the song length?

Error in Service

/MethodChannel#flutter_radio_player(24427): Failed to handle method call
E/MethodChannel#flutter_radio_player(24427): java.lang.IllegalArgumentException: Service not registered: me.sithiramunasinghe.flutter.flutter_radio_player.FlutterRadioPlayerPlugin$serviceConnection$1@94492bd
E/MethodChannel#flutter_radio_player(24427): at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1160)
E/MethodChannel#flutter_radio_player(24427): at android.app.ContextImpl.unbindService(ContextImpl.java:1475)
E/MethodChannel#flutter_radio_player(24427): at android.content.ContextWrapper.unbindService(ContextWrapper.java:644)
E/MethodChannel#flutter_radio_player(24427): at me.sithiramunasinghe.flutter.flutter_radio_player.FlutterRadioPlayerPlugin.stop(FlutterRadioPlayerPlugin.kt:181)
E/MethodChannel#flutter_radio_player(24427): at me.sithiramunasinghe.flutter.flutter_radio_player.FlutterRadioPlayerPlugin.onMethodCall(FlutterRadioPlayerPlugin.kt:75)
E/MethodChannel#flutter_radio_player(24427): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:226)
E/MethodChannel#flutter_radio_player(24427): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#flutter_radio_player(24427): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:631)
E/MethodChannel#flutter_radio_player(24427): at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#flutter_radio_player(24427): at android.os.MessageQueue.next(MessageQueue.java:323)
E/MethodChannel#flutter_radio_player(24427): at android.os.Looper.loop(Looper.java:135)
E/MethodChannel#flutter_radio_player(24427): at android.app.ActivityThread.main(ActivityThread.java:7325)
E/MethodChannel#flutter_radio_player(24427): at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#flutter_radio_player(24427): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
E/MethodChannel#flutter_radio_player(24427): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Crash on Android

I got this error when try Init this package like in the documentations:
It's work on iOS, but in Android crash.
Can you give me solution?

E/AndroidRuntime(15749): java.lang.AbstractMethodError: abstract method "java.lang.CharSequence com.google.android.exoplayer2.ui.PlayerNotificationManager$MediaDescriptionAdapter.getCurrentContentTitle(com.google.android.exoplayer2.Player)"
E/AndroidRuntime(15749): at com.google.android.exoplayer2.ui.PlayerNotificationManager.createNotification(PlayerNotificationManager.java:1189)
E/AndroidRuntime(15749): at com.google.android.exoplayer2.ui.PlayerNotificationManager.startOrUpdateNotification(PlayerNotificationManager.java:1066)
E/AndroidRuntime(15749): at com.google.android.exoplayer2.ui.PlayerNotificationManager.handleMessage(PlayerNotificationManager.java:1329)
E/AndroidRuntime(15749): at com.google.android.exoplayer2.ui.PlayerNotificationManager.lambda$ZG0s-7uOzb-YtyUlp8ahx3j4wBg(Unknown Source:0)
E/AndroidRuntime(15749): at com.google.android.exoplayer2.ui.-$$Lambda$PlayerNotificationManager$ZG0s-7uOzb-YtyUlp8ahx3j4wBg.handleMessage(Unknown Source:2)
E/AndroidRuntime(15749): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(15749): at android.os.Looper.loop(Looper.java:236)
E/AndroidRuntime(15749): at android.app.ActivityThread.main(ActivityThread.java:8043)
E/AndroidRuntime(15749): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(15749): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
E/AndroidRuntime(15749): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)

@Sithira

Error Kotlin

Hello, how are you?
I am interested in using the flutter_radio_player, I am using the Android studio to run the example code, but this is giving an error, I have already researched the solution for this error and so far I have not found it.
Do you have any suggestions to resolve this error below
I thank you for your help
Samuel
flutter_radio_player.txt

  • What went wrong:
    Execution failed for task ':flutter_radio_player:compileDebugKotlin'.

Compilation error. See log for more details

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 23s
Finished with error: Gradle task assembleDebug failed with exit code 1

Stream not working when hot restart

I try this case, when stream is playing and i press hot restart my application, my music still playing in background but in StreamBuilder status is flutter_radio_paused

How we handle this event?

Problem with SDK 30

Hello,
Now in PlayStore it is mandatory to upload an app with SDK 30.
This library gives an error when compiling in that version.

Error log:

e: C:\Users\leand\flutter.pub-cache\hosted\pub.dartlang.org\flutter_radio_player-1.0.7\android\src\main\kotlin\me\sithiramunasinghe\flutter\flutter_radio_player\core\StreamingCore.kt: (121, 90): Type mismatch: inferred type is String? but String was expected
e: C:\Users\leand\flutter.pub-cache\hosted\pub.dartlang.org\flutter_radio_player-1.0.7\android\src\main\kotlin\me\sithiramunasinghe\flutter\flutter_radio_player\core\StreamingCore.kt: (123, 63): Type mismatch: inferred type is String? but String was expected
e: C:\Users\leand\flutter.pub-cache\hosted\pub.dartlang.org\flutter_radio_player-1.0.7\android\src\main\kotlin\me\sithiramunasinghe\flutter\flutter_radio_player\core\StreamingCore.kt: (174, 32): Type mismatch: inferred type is String? but String was expected

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':flutter_radio_player:compileReleaseKotlin'.

Compilation error. See log for more details

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 1m 19s

MissingPluginException

Exception has occurred.
MissingPluginException (MissingPluginException(No implementation found for method initService on channel flutter_radio_player))

Please how can I solve this?

Stream Issue When Listen in 2 Screen

I have an issue with stream builder here.

I have two screens, that's is A and B.
i place StreamBuilder in the both of screen and listen to the same screen "_isPlayingStream" in Provider.

When i open screen B, i run the function Flutter radio init, and the stream running in screen A and B.

But when i close screen B, the stream in screen A not working, when i test print it's not receiving any stream data.

Upgraded to 1.0.7 and got error

So I went to upgrade from 1.0.5 to 1.0.7 and got this error.

e: /home/russellharrower/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.5/android/src/main/kotlin/me/sithiramunasinghe/flutter/flutter_radio_player/FlutterRadioPlayerPlugin.kt: (23, 14): Redeclaration: FlutterRadioPlayerPlugin
e: /home/russellharrower/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.5/android/src/main/kotlin/me/sithiramunasinghe/flutter/flutter_radio_player/core/StreamingCore.kt: (33, 7): Redeclaration: StreamingCore
e: /home/russellharrower/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.7/android/src/main/kotlin/me/sithiramunasinghe/flutter/flutter_radio_player/FlutterRadioPlayerPlugin.kt: (23, 14): Redeclaration: FlutterRadioPlayerPlugin
e: /home/russellharrower/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.7/android/src/main/kotlin/me/sithiramunasinghe/flutter/flutter_radio_player/FlutterRadioPlayerPlugin.kt: (35, 22): Cannot access 'buildEngine': it is private in 'FlutterRadioPlayerPlugin'
e: /home/russellharrower/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.7/android/src/main/kotlin/me/sithiramunasinghe/flutter/flutter_radio_player/core/StreamingCore.kt: (29, 93): Unresolved reference: broadcastChangedMetaDataName
e: /home/russellharrower/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.7/android/src/main/kotlin/me/sithiramunasinghe/flutter/flutter_radio_player/core/StreamingCore.kt: (34, 7): Redeclaration: StreamingCore
e: /home/russellharrower/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.7/android/src/main/kotlin/me/sithiramunasinghe/flutter/flutter_radio_player/core/StreamingCore.kt: (47, 50): Unresolved reference: broadcastChangedMetaDataName

FAILURE: Build failed with an exception.

This is a copy of my pubsec.yaml

name: drn1
description: Listen to the hottest indie station in Australia as well as get access to all our shows all in one place.

# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter


  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.3
  http: ^0.12.2
  audio_service: ^0.14.1
  flutter_radio_player: ^1.0.7
  async: ^2.2.0
  firebase_core: ^0.5.0


dev_dependencies:
  flutter_test:
    sdk: flutter

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  # assets:
  #   - images/a_dot_burr.jpeg
  #   - images/a_dot_ham.jpeg

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.dev/assets-and-images/#resolution-aware.

  # For details regarding adding assets from package dependencies, see
  # https://flutter.dev/assets-and-images/#from-packages

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts from package dependencies,
  # see https://flutter.dev/custom-fonts/#from-packages

Crash on android

My application going crash sometime when run in release mode, when i check in the crashlytics logs, the problem in this libary and say "Services not registered"

Can you give me solution to handle this issue?
Screen Shot 2021-09-09 at 12 58 34

Does not change station

So we are trying to add the ability to change stations however it is not working.


  Future<void> changestation() async{
    try {
     // await _flutterRadioPlayer.stop();
      await _flutterRadioPlayer.setUrl('http://stream.radiomedia.com.au:8015/stream', "false");
    } on PlatformException {
      print("Exception occurred while trying to register the services.");
    }
//    await _flutterRadioPlayer.play();
  }


Full code

import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:flutter_radio_player/flutter_radio_player.dart';
import './screens/trackswidget.dart';
import 'about_widget.dart';

class Home extends StatefulWidget {
var playerState = FlutterRadioPlayer.flutter_radio_paused;

var volume = 0.8;

@OverRide
State createState() {
return _HomeState();
}
}

class _HomeState extends State {

bool check = true;
int _currentIndex = 0;
FlutterRadioPlayer _flutterRadioPlayer = new FlutterRadioPlayer();

@OverRide
void initState() {
super.initState();
initRadioService();
}

Future initRadioService() async {
try {
await _flutterRadioPlayer.init(
"DRN1", "Live", "http://stream.radiomedia.com.au:8003/stream", "false");
} on PlatformException {
print("Exception occurred while trying to register the services.");
}
//await _flutterRadioPlayer.play();
}

Future changestation() async{
try {
// await _flutterRadioPlayer.stop();
await _flutterRadioPlayer.setUrl('http://stream.radiomedia.com.au:8015/stream', "false");
} on PlatformException {
print("Exception occurred while trying to register the services.");
}
// await _flutterRadioPlayer.play();
}

final List _children = [TracksWidget(),
AboutWidget()];

@OverRide
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.black,
title: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text('DRN',style: TextStyle(color: Colors.white, fontSize: 40.0),),
const Text('1', style: TextStyle(color: Colors.red, fontSize: 40.0),)
],
),
),
//body: _children[_currentIndex],
body:
Row(
children: [
Expanded(
child: new RaisedButton(
padding: const EdgeInsets.all(8.0),
textColor: Colors.white,
color: Colors.blue,
onPressed: () async { await changestation(); },

          child: new Text("Change Station"),
        ),
      ),
      Expanded(
        child: Text('Craft beautiful UIs', textAlign: TextAlign.center),
      ),
      Expanded(
        child: FittedBox(
          fit: BoxFit.contain, // otherwise the logo will be tiny
          child: const FlutterLogo(),
        ),
      ),
    ],
  ),

/* body: Center(
child: Column(
children: [
StreamBuilder(
stream: _flutterRadioPlayer.isPlayingStream,
initialData: widget.playerState,
builder:
(BuildContext context, AsyncSnapshot snapshot) {
String returnData = snapshot.data;
print("object data: " + returnData);
switch (returnData) {
case FlutterRadioPlayer.flutter_radio_stopped:
return RaisedButton(
child: Text("Start listening now"),
onPressed: () async {
await initRadioService();
});
break;
case FlutterRadioPlayer.flutter_radio_loading:
return Text("Loading stream...");
case FlutterRadioPlayer.flutter_radio_error:
return RaisedButton(
child: Text("Retry ?"),
onPressed: () async {
await initRadioService();
});
break;
default:
return Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
IconButton(
onPressed: () async {
print("button press data: " +
snapshot.data.toString());
await _flutterRadioPlayer.playOrPause();
},
icon: snapshot.data ==
FlutterRadioPlayer
.flutter_radio_playing
? Icon(Icons.pause)
: Icon(Icons.play_arrow)),
IconButton(
onPressed: () async {
await _flutterRadioPlayer.stop();
},
icon: Icon(Icons.stop))
]);
break;
}
}),
Slider(
value: widget.volume,
min: 0,
max: 1.0,
onChanged: (value) => setState(() {
widget.volume = value;
_flutterRadioPlayer.setVolume(widget.volume);
})),
Text("Volume: " + (widget.volume * 100).toStringAsFixed(0))
],
),
),
*/

  floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
  floatingActionButton: Container(
    height: 80.0,
    width: 80.0,
    child: FittedBox(
      child:FloatingActionButton(
              onPressed: () => {
                setState((){
                  if(check)
                  {
                    check = false;
                     _flutterRadioPlayer.play();
                    print("false");
                  }
                  else
                  {
                    check = true;
                     _flutterRadioPlayer.pause();
                    print("true");
                  }

                }),
                },
     child: Icon(check ? Icons.play_arrow: Icons.pause),
            backgroundColor: Colors.black,
            mini: true,
          ),
    ),

  ),
  bottomNavigationBar: BottomAppBar(
    shape: CircularNotchedRectangle(),
    child: Container(
      decoration:
      new BoxDecoration(color: new Color(0xFFFF0000)),
      height: 75,
      child: Row(
        mainAxisSize: MainAxisSize.max,
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: <Widget>[
          IconButton(
            iconSize: 30.0,
            padding: EdgeInsets.only(left: 28.0),
            icon: Icon(Icons.home),
            onPressed: () {
              setState(() {

                onTabTapped(0);
              });
            },
          ),
      /*    IconButton(
            iconSize: 30.0,
            padding: EdgeInsets.only(right: 28.0),
            icon: Icon(Icons.search),
            onPressed: () {
              setState(() {
                onTabTapped(1);
              });
            },
          ),
          IconButton(
            iconSize: 30.0,
            padding: EdgeInsets.only(left: 28.0),
            icon: Icon(Icons.notifications),
            onPressed: () {
              setState(() {
                onTabTapped(2);
              });
            },
          ),*/
          IconButton(
            iconSize: 30.0,
            padding: EdgeInsets.only(right: 28.0),
            icon: Icon(Icons.info_outline),
            onPressed: () {
              setState(() {
                onTabTapped(1);
              });
            },
          )
        ],
      ),
    ),
  ),// new

);

}

void onTabTapped(int index) {
setState(() {
_currentIndex = index;
});
}
}

wont switch stations

So the following is going to look like a mess (sorry in advance)

However I needed away to do a GridView that allowed the user to change station.

When the app launches the app starts playing as it is meant to however when I click on a stations logo it does not start playing said station.

If anyone can assist that would be great.

Full code:
`import 'dart:async';
import 'dart:convert';
import 'package:flutter/foundation.dart';

import 'package:flutter/material.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:http/http.dart' as http;
import 'package:flutter/services.dart';
import 'package:flutter_radio_player/flutter_radio_player.dart';
import './screens/trackswidget.dart';
import 'about_widget.dart';

/* TO FETCH PHOTOS */

Photo photoFromJson(String str) => Photo.fromJson(json.decode(str));

String photoToJson(Photo data) => json.encode(data.toJson());

class Photo {
Photo({
this.data,
});

List data;

factory Photo.fromJson(Map<String, dynamic> json) => Photo(
data: List.from(json["data"].map((x) => Datum.fromJson(x))),
);

Map<String, dynamic> toJson() => {
"data": List.from(data.map((x) => x.toJson())),
};
}

class Datum {
Datum({
this.id,
this.name,
this.imageurl,
this.website,
this.listenlive,
});

String id;
String name;
String imageurl;
String website;
String listenlive;

factory Datum.fromJson(Map<String, dynamic> json) => Datum(
id: json["_id"],
name: json["name"],
imageurl: json["imageurl"],
website: json["website"],
listenlive: json["listenlive"],
);

Map<String, dynamic> toJson() => {
"_id": id,
"name": name,
"imageurl": imageurl,
"website": website,
"listenlive": listenlive,
};
}

/* TO FETCH PHOTOS */
Future fetchPhotos(http.Client client) async {
final response =
//await client.get('https://jsonplaceholder.typicode.com/photos');
await client.get('https://api.drn1.com.au/station/allstations');
// Use the compute function to run parsePhotos in a separate isolate.
return compute(parsePhotos, response.body);
}

// A function that converts a response body into a List.
Photo parsePhotos(String responseBody) {
return photoFromJson(responseBody);
}

class PhotosList extends StatelessWidget {
final Photo photos;
FlutterRadioPlayer _flutterRadioPlayer = new FlutterRadioPlayer();

PhotosList({Key key, this.photos}) : super(key: key);

@OverRide
Widget build(BuildContext context) {
return GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 1,
childAspectRatio: MediaQuery.of(context).size.width /
(MediaQuery.of(context).size.height / 4), //childAspectRatio: 200,
),
scrollDirection: Axis.horizontal,
itemCount: photos.data.length,
itemBuilder: (context, index) {
return RaisedButton(
padding: const EdgeInsets.all(0),
textColor: Colors.white,
color: Colors.red,
onPressed: () async { await _flutterRadioPlayer.setUrl(photos.data[index].listenlive+'?uuid=0000-0000-0000-0000', "false");
},

      child: CachedNetworkImage(
        imageUrl: photos.data[index].imageurl,
        placeholder: (context, url) => CircularProgressIndicator(),
        errorWidget: (context, url, error) => Icon(Icons.error),
      ),
    );
    // return Image.network(photos.data[index].imageurl, width: 80.0, height: 80.0,);
  },
);

}
}

/END FETCH PHOTOS/

/END FETCH PHOTOS/

/* RADIO STATIONS */
Radata radataFromJson(String str) => Radata.fromJson(json.decode(str));

String radataToJson(Radata data) => json.encode(data.toJson());

class Radata {
Radata({
this.data,
});

List data;

factory Radata.fromJson(Map<String, dynamic> json) => Radata(
data: List.from(json["data"].map((x) => Radio.fromJson(x))),
);

Map<String, dynamic> toJson() => {
"data": List.from(data.map((x) => x.toJson())),
};
}

class Radio {
Radio({
this.id,
this.name,
this.imageurl,
this.website,
this.listenlive,
});

String id;
String name;
String imageurl;
String website;
String listenlive;

factory Radio.fromJson(Map<String, dynamic> json) => Radio(
id: json["_id"],
name: json["name"],
imageurl: json["imageurl"],
website: json["website"],
listenlive: json["listenlive"],
);

Map<String, dynamic> toJson() => {
"_id": id,
"name": name,
"imageurl": imageurl,
"website": website,
"listenlive": listenlive,
};
}
/* END RADIO STATIONS*/

class Home extends StatefulWidget {
var playerState = FlutterRadioPlayer.flutter_radio_paused;

var volume = 0.8;

@OverRide
State createState() {
return _HomeState();
}
}

class _HomeState extends State {
Future _future;
Future getHttp() async {
http.Response response =
await http.get("https://api.drn1.com.au/station/allstations");
if (response.statusCode == 200) {
return radataFromJson(response.body);
}
}

bool check = true;
int _currentIndex = 0;
FlutterRadioPlayer _flutterRadioPlayer = new FlutterRadioPlayer();

@OverRide
void initState() {
_future = getHttp();
initRadioService();
super.initState();
}

Future initRadioService() async {
try {
await _flutterRadioPlayer.init(
"DRN1", "Live", "http://stream.radiomedia.com.au:8003/stream", "true");
} on PlatformException {
print("Exception occurred while trying to register the services.");
}
//await _flutterRadioPlayer.play();
}

Future changestation(e) async{
try {
await _flutterRadioPlayer.setUrl(e, "true");
// await _flutterRadioPlayer.play();
} on PlatformException {
print("Exception occurred while trying to register the services.");
}
}

final List _children = [TracksWidget(),
AboutWidget()];

@OverRide
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.black,
title: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text('DRN',style: TextStyle(color: Colors.white, fontSize: 40.0),),
const Text('1', style: TextStyle(color: Colors.red, fontSize: 40.0),)
],
),
),
//body: _children[_currentIndex],
body: Column(children: [
FutureBuilder(
future: fetchPhotos(http.Client()),
builder: (context, snapshot) {
if (snapshot.hasError) print(snapshot.error);

                return snapshot.hasData
                ? Expanded(child: PhotosList(photos: snapshot.data))
                    : Center(child: CircularProgressIndicator());
                },
            ),
]),
 /*Column(
      children: [ SizedBox(
                  height:200,
                  child:ListView(
                    // This next line does the trick.
                    scrollDirection: Axis.horizontal,
                      children: <Widget>[
                        Container(
                          width: 200.0,
                          height: 200.0,
                          color: Colors.red,
                          child: new RaisedButton(
                            padding: const EdgeInsets.all(0),
                            textColor: Colors.white,
                            color: Colors.red,
                            onPressed: () async {  await changestation('http://stream.radiomedia.com.au:8006/stream');
                            },

                            child: CachedNetworkImage(
                              imageUrl: "http://via.placeholder.com/200x200",
                              placeholder: (context, url) => CircularProgressIndicator(),
                              errorWidget: (context, url, error) => Icon(Icons.error),
                            ),
                          ),

                        ),
                       GestureDetector(
                            child: SizedBox(
                              width: 200,
                              height:200,
                              child: CachedNetworkImage(
                                imageUrl: "http://via.placeholder.com/200x200",
                                placeholder: (context, url) => CircularProgressIndicator(),
                                errorWidget: (context, url, error) => Icon(Icons.error),
                              ),
                            ),
                            onTap:() async {  await changestation('http://stream.radiomedia.com.au:8015/stream');}
                          ),
                          /*child: new RaisedButton(
                                              padding: const EdgeInsets.all(0),
                                              textColor: Colors.white,
                                              color: Colors.blue,
                                              onPressed: () async {  await changestation('http://stream.radiomedia.com.au:8015/stream');
                                              },

                                                child: CachedNetworkImage(
                                                  imageUrl: "http://via.placeholder.com/200x200",
                                                  placeholder: (context, url) => CircularProgressIndicator(),
                                                  errorWidget: (context, url, error) => Icon(Icons.error),
                                                ),
                                            ),

*/
Container(
width: 200.0,
height: 200.0,
color: Colors.green,
),
Container(
width: 200.0,
height: 200.0,
color: Colors.yellow,
),
Container(
width: 200.0,
height: 200.0,
color: Colors.orange,
),
],
),
),

            FutureBuilder<List<Photo>>(
              future: fetchPhotos(http.Client()),
              builder: (context, snapshot) {
                if (snapshot.hasError) print(snapshot.error);

                return snapshot.hasData
                    ?  Expanded(child: PhotosList(photos: snapshot.data))
                    : Center(child: CircularProgressIndicator());
              },
            ),


          Row(
          children: <Widget>[
            Expanded(
              child: new RaisedButton(
                padding: const EdgeInsets.all(8.0),
                textColor: Colors.white,
                color: Colors.blue,
                onPressed: () async {  await changestation('http://stream.radiomedia.com.au:8015/stream');
                },

                child: new Text("Change Station"),
              ),
            ),
            Expanded(
              child: Text('Craft beautiful UIs', textAlign: TextAlign.center),
            ),
            Expanded(
              child: FittedBox(
                fit: BoxFit.contain, // otherwise the logo will be tiny
                child: const FlutterLogo(),
              ),
            ),
          ],
        ),

]),*/

/* body: Center(
child: Column(
children: [
StreamBuilder(
stream: _flutterRadioPlayer.isPlayingStream,
initialData: widget.playerState,
builder:
(BuildContext context, AsyncSnapshot snapshot) {
String returnData = snapshot.data;
print("object data: " + returnData);
switch (returnData) {
case FlutterRadioPlayer.flutter_radio_stopped:
return RaisedButton(
child: Text("Start listening now"),
onPressed: () async {
await initRadioService();
});
break;
case FlutterRadioPlayer.flutter_radio_loading:
return Text("Loading stream...");
case FlutterRadioPlayer.flutter_radio_error:
return RaisedButton(
child: Text("Retry ?"),
onPressed: () async {
await initRadioService();
});
break;
default:
return Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
IconButton(
onPressed: () async {
print("button press data: " +
snapshot.data.toString());
await _flutterRadioPlayer.playOrPause();
},
icon: snapshot.data ==
FlutterRadioPlayer
.flutter_radio_playing
? Icon(Icons.pause)
: Icon(Icons.play_arrow)),
IconButton(
onPressed: () async {
await _flutterRadioPlayer.stop();
},
icon: Icon(Icons.stop))
]);
break;
}
}),
Slider(
value: widget.volume,
min: 0,
max: 1.0,
onChanged: (value) => setState(() {
widget.volume = value;
_flutterRadioPlayer.setVolume(widget.volume);
})),
Text("Volume: " + (widget.volume * 100).toStringAsFixed(0))
],
),
),
*/

  floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
  floatingActionButton: Container(
    height: 80.0,
    width: 80.0,
    child: FittedBox(
      child:FloatingActionButton(
              onPressed: () => {
                setState((){
                  if(check)
                  {
                    check = false;
                     _flutterRadioPlayer.play();
                    print("false");
                  }
                  else
                  {
                    check = true;
                     _flutterRadioPlayer.pause();
                    print("true");
                  }

                }),
                },
     child: Icon(check ? Icons.play_arrow: Icons.pause),
            backgroundColor: Colors.black,
            mini: true,
          ),
    ),

  ),
  bottomNavigationBar: BottomAppBar(
    shape: CircularNotchedRectangle(),
    child: Container(
      decoration:
      new BoxDecoration(color: new Color(0xFFFF0000)),
      height: 75,
      child: Row(
        mainAxisSize: MainAxisSize.max,
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: <Widget>[
          IconButton(
            iconSize: 30.0,
            padding: EdgeInsets.only(left: 28.0),
            icon: Icon(Icons.home),
            onPressed: () {
              setState(() {

                onTabTapped(0);
              });
            },
          ),
      /*    IconButton(
            iconSize: 30.0,
            padding: EdgeInsets.only(right: 28.0),
            icon: Icon(Icons.search),
            onPressed: () {
              setState(() {
                onTabTapped(1);
              });
            },
          ),
          IconButton(
            iconSize: 30.0,
            padding: EdgeInsets.only(left: 28.0),
            icon: Icon(Icons.notifications),
            onPressed: () {
              setState(() {
                onTabTapped(2);
              });
            },
          ),*/
          IconButton(
            iconSize: 30.0,
            padding: EdgeInsets.only(right: 28.0),
            icon: Icon(Icons.info_outline),
            onPressed: () {
              setState(() {
                onTabTapped(1);
              });
            },
          )
        ],
      ),
    ),
  ),// new

);

}

void onTabTapped(int index) {
setState(() {
_currentIndex = index;
});
}
}`

Fail running on Android Simulator and Device. Run on IOS OK no issue

Try testing the example. OK on IOS simulator and device BUT FAIL on Android Simulator and Device.
See errors below;
Restarted application in 1,312ms.
I/javaClass(31009): Calling to method: initService
I/javaClass(31009): start service invoked
I/javaClass(31009): Attempting to initialize service...
I/javaClass(31009): Service not bound, binding now....
I/javaClass(31009): Mapping method call to player item object
I/flutter (31009): object data: flutter_radio_paused
I/flutter (31009): object data: flutter_radio_paused
I/flutter (31009): 360.0
V/AudioManager(31009): querySoundEffectsEnabled...
I/flutter (31009): button press data: flutter_radio_paused
I/flutter (31009): Invoking platform method: playOrPause
I/javaClass(31009): Calling to method: playOrPause
I/javaClass(31009): Attempting to either play or pause...
I/javaClass(31009): Attempting to get playing status....
E/MethodChannel#flutter_radio_player(31009): Failed to handle method call
E/MethodChannel#flutter_radio_player(31009): kotlin.UninitializedPropertyAccessException: lateinit property coreService has not been initialized
E/MethodChannel#flutter_radio_player(31009): at me.sithiramunasinghe.flutter.flutter_radio_player.FlutterRadioPlayerPlugin.isPlaying(FlutterRadioPlayerPlugin.kt:192)
E/MethodChannel#flutter_radio_player(31009): at me.sithiramunasinghe.flutter.flutter_radio_player.FlutterRadioPlayerPlugin.playOrPause(FlutterRadioPlayerPlugin.kt:199)
E/MethodChannel#flutter_radio_player(31009): at me.sithiramunasinghe.flutter.flutter_radio_player.FlutterRadioPlayerPlugin.onMethodCall(FlutterRadioPlayerPlugin.kt:64)
E/MethodChannel#flutter_radio_player(31009): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
E/MethodChannel#flutter_radio_player(31009): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#flutter_radio_player(31009): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:738)
E/MethodChannel#flutter_radio_player(31009): at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#flutter_radio_player(31009): at android.os.MessageQueue.next(MessageQueue.java:363)
E/MethodChannel#flutter_radio_player(31009): at android.os.Looper.loop(Looper.java:176)
E/MethodChannel#flutter_radio_player(31009): at android.app.ActivityThread.main(ActivityThread.java:8347)
E/MethodChannel#flutter_radio_player(31009): at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#flutter_radio_player(31009): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
E/MethodChannel#flutter_radio_player(31009): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
E/flutter (31009): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: PlatformException(error, lateinit property coreService has not been initialized, null, kotlin.UninitializedPropertyAccessException: lateinit property coreService has not been initialized
E/flutter (31009): at me.sithiramunasinghe.flutter.flutter_radio_player.FlutterRadioPlayerPlugin.isPlaying(FlutterRadioPlayerPlugin.kt:192)
E/flutter (31009): at me.sithiramunasinghe.flutter.flutter_radio_player.FlutterRadioPlayerPlugin.playOrPause(FlutterRadioPlayerPlugin.kt:199)
E/flutter (31009): at me.sithiramunasinghe.flutter.flutter_radio_player.FlutterRadioPlayerPlugin.onMethodCall(FlutterRadioPlayerPlugin.kt:64)
E/flutter (31009): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
E/flutter (31009): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/flutter (31009): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:738)
E/flutter (31009): at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter (31009): at android.os.MessageQueue.next(MessageQueue.java:363)
E/flutter (31009): at android.os.Looper.loop(Looper.java:176)
E/flutter (31009): at android.app.ActivityThread.main(ActivityThread.java:8347)
E/flutter (31009): at java.lang.reflect.Method.invoke(Native Method)
E/flutter (31009): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
E/flutter (31009): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
E/flutter (31009): )
E/flutter (31009): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:582:7)
E/flutter (31009): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:159:18)
E/flutter (31009):
E/flutter (31009): #2 FlutterRadioPlayer.playOrPause (package:flutter_radio_player/flutter_radio_player.dart:45:12)
E/flutter (31009):
E/flutter (31009): #3 _MyAppState.build.. (package:flutter_radio_player_example/main.dart:91:37)
E/flutter (31009):
E/flutter (31009):
I/flutter (31009): 360.0
I/flutter (31009): 360.0
I/flutter (31009): 360.0
I/flutter (31009): 360.0
I/flutter (31009): 360.0
I/flutter (31009): 360.0
I/flutter (31009): 360.0
I/flutter (31009): 360.0
I/flutter (31009): 360.0
I/flutter (31009): 360.0
D/DecorView(31009): showOrHideHighlightView: hasFocus=false; winMode=1; isMrgNull=true
D/RtgSched(31009): resetRtgSchedHandle failed enable:0
W/libEGL (31009): EGLNativeWindowType 0x79bcdfd010 disconnect failed
W/libEGL (31009): EGLNativeWindowType 0x7a1be5abd0 disconnect failed
D/ActivityThread(31009): Remove activity client record, r= ActivityRecord{a12562e token=android.os.BinderProxy@d0e3985 {me.sithiramunasinghe.flutter.flutter_radio_player_example/me.sithiramunasinghe.flutter.flutter_radio_player_example.MainActivity}} token= android.os.BinderProxy@d0e3985
D/ZrHung.AppEyeUiProbe(31009): not watching, wait.

Getting issue when run in IOS Simulator

Its perfectly working in Android device

I am adding issue below with complete description.

Notification received with event name: flutter_radio_playing
Fatal error: Unexpectedly found nil while unwrapping an Optional value: file /Users/macbook/Documents/FlutterSetup/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.4/ios/Classes/SwiftFlutterRadioPlayerPlugin.swift, line 100
2020-05-14 16:23:16.608359+0530 Runner[48848:409859] Fatal error: Unexpectedly found nil while unwrapping an Optional value: file /Users/macbook/Documents/FlutterSetup/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.4/ios/Classes/SwiftFlutterRadioPlayerPlugin.swift, line 100

Changing stations wont play straight away

So Not sure what I am doing wrong, or if this is a known bug. But it seems that me using the following code does not change stream and play stream.

I am noticing it seem to be default to pause no matter what:

I/javaClass(25595): Attaching player as a foreground notification...
I/javaClass(25595): Received meta: ICY: title="Supernal S01E01 Part 2", url="null", rawMetadata.length="37"
I/javaClass(25595): Pushing Event: flutter_radio_paused
I/javaClass(25595): onPlayerStateChanged: PAUSED
I/javaClass(25595): Received status: flutter_radio_paused
I/javaClass(25595): Attaching player as a foreground notification...

instead I still have to manually click the play pause button.

  Future<void> changestation() async{
    try {
      await _flutterRadioPlayer.setUrl('http://stream.radiomedia.com.au:8015/stream', "false");
      await _flutterRadioPlayer.play();
    } on PlatformException {
      print("Exception occurred while trying to register the services.");
    }

  }

Full code:

import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:flutter_radio_player/flutter_radio_player.dart';
import './screens/trackswidget.dart';
import 'about_widget.dart';


class Home extends StatefulWidget {
  var playerState = FlutterRadioPlayer.flutter_radio_paused;

  var volume = 0.8;

  @override
  State<StatefulWidget> createState() {
    return _HomeState();
  }
}

class _HomeState extends State<Home> {

  bool check = true;
  int _currentIndex = 0;
  FlutterRadioPlayer _flutterRadioPlayer = new FlutterRadioPlayer();

  @override
  void initState() {
    super.initState();
    initRadioService();
  }


  Future<void> initRadioService() async {
    try {
      await _flutterRadioPlayer.init(
          "DRN1", "Live", "http://stream.radiomedia.com.au:8003/stream", "false");
    } on PlatformException {
      print("Exception occurred while trying to register the services.");
    }
    //await _flutterRadioPlayer.play();
  }

  Future<void> changestation() async{
    try {
      await _flutterRadioPlayer.setUrl('http://stream.radiomedia.com.au:8015/stream', "false");
      await _flutterRadioPlayer.play();
    } on PlatformException {
      print("Exception occurred while trying to register the services.");
    }

  }


  final List<Widget> _children = [TracksWidget(),
    AboutWidget()];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.black,
        title: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              const Text('DRN',style: TextStyle(color: Colors.white, fontSize: 40.0),),
              const Text('1', style: TextStyle(color: Colors.red, fontSize: 40.0),)
            ],
        ),
      ),
      //body: _children[_currentIndex],
      body:
      Row(
        children: <Widget>[
          Expanded(
            child: new RaisedButton(
              padding: const EdgeInsets.all(8.0),
              textColor: Colors.white,
              color: Colors.blue,
              onPressed: () async { await changestation(); },

              child: new Text("Change Station"),
            ),
          ),
          Expanded(
            child: Text('Craft beautiful UIs', textAlign: TextAlign.center),
          ),
          Expanded(
            child: FittedBox(
              fit: BoxFit.contain, // otherwise the logo will be tiny
              child: const FlutterLogo(),
            ),
          ),
        ],
      ),

/*    body: Center(
        child: Column(
          children: <Widget>[
            StreamBuilder(
                stream: _flutterRadioPlayer.isPlayingStream,
                initialData: widget.playerState,
                builder:
                    (BuildContext context, AsyncSnapshot<String> snapshot) {
                  String returnData = snapshot.data;
                  print("object data: " + returnData);
                  switch (returnData) {
                    case FlutterRadioPlayer.flutter_radio_stopped:
                      return RaisedButton(
                          child: Text("Start listening now"),
                          onPressed: () async {
                            await initRadioService();
                          });
                      break;
                    case FlutterRadioPlayer.flutter_radio_loading:
                      return Text("Loading stream...");
                    case FlutterRadioPlayer.flutter_radio_error:
                      return RaisedButton(
                          child: Text("Retry ?"),
                          onPressed: () async {
                            await initRadioService();
                          });
                      break;
                    default:
                      return Row(
                          crossAxisAlignment: CrossAxisAlignment.center,
                          mainAxisAlignment: MainAxisAlignment.center,
                          children: <Widget>[
                            IconButton(
                                onPressed: () async {
                                  print("button press data: " +
                                      snapshot.data.toString());
                                  await _flutterRadioPlayer.playOrPause();
                                },
                                icon: snapshot.data ==
                                    FlutterRadioPlayer
                                        .flutter_radio_playing
                                    ? Icon(Icons.pause)
                                    : Icon(Icons.play_arrow)),
                            IconButton(
                                onPressed: () async {
                                  await _flutterRadioPlayer.stop();
                                },
                                icon: Icon(Icons.stop))
                          ]);
                      break;
                  }
                }),
            Slider(
                value: widget.volume,
                min: 0,
                max: 1.0,
                onChanged: (value) => setState(() {
                  widget.volume = value;
                  _flutterRadioPlayer.setVolume(widget.volume);
                })),
            Text("Volume: " + (widget.volume * 100).toStringAsFixed(0))
          ],
        ),
      ),
*/

      floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
      floatingActionButton: Container(
        height: 80.0,
        width: 80.0,
        child: FittedBox(
          child:FloatingActionButton(
                  onPressed: () => {
                    setState((){
                      if(check)
                      {
                        check = false;
                         _flutterRadioPlayer.play();
                        print("false");
                      }
                      else
                      {
                        check = true;
                         _flutterRadioPlayer.pause();
                        print("true");
                      }

                    }),
                    },
         child: Icon(check ? Icons.play_arrow: Icons.pause),
                backgroundColor: Colors.black,
                mini: true,
              ),
        ),

      ),
      bottomNavigationBar: BottomAppBar(
        shape: CircularNotchedRectangle(),
        child: Container(
          decoration:
          new BoxDecoration(color: new Color(0xFFFF0000)),
          height: 75,
          child: Row(
            mainAxisSize: MainAxisSize.max,
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: <Widget>[
              IconButton(
                iconSize: 30.0,
                padding: EdgeInsets.only(left: 28.0),
                icon: Icon(Icons.home),
                onPressed: () {
                  setState(() {

                    onTabTapped(0);
                  });
                },
              ),
          /*    IconButton(
                iconSize: 30.0,
                padding: EdgeInsets.only(right: 28.0),
                icon: Icon(Icons.search),
                onPressed: () {
                  setState(() {
                    onTabTapped(1);
                  });
                },
              ),
              IconButton(
                iconSize: 30.0,
                padding: EdgeInsets.only(left: 28.0),
                icon: Icon(Icons.notifications),
                onPressed: () {
                  setState(() {
                    onTabTapped(2);
                  });
                },
              ),*/
              IconButton(
                iconSize: 30.0,
                padding: EdgeInsets.only(right: 28.0),
                icon: Icon(Icons.info_outline),
                onPressed: () {
                  setState(() {
                    onTabTapped(1);
                  });
                },
              )
            ],
          ),
        ),
      ),// new

    );
  }

  void onTabTapped(int index) {
    setState(() {
      _currentIndex = index;
    });
  }
}

iOS: init 'playWhenReady' flag ignored

You need to do this (so set to false by default, only set true if the string == "true")
In initService (StreamingCore.swift)

    self.playWhenReady = false

    if playWhenReady == "true" {
        print("PlayWhenReady: true")
        self.playWhenReady = true
    }

Duration & seek-to functionality

Hi.

Is there any chance to have a duration stream and maybe seek-to functionality?

Similar to what notification has now, a way to show a duration seek-bar and updated it using a StreamBuilder maybe.

Thanks!

Error on startup, not able to use this package. MethodChannel.invokeMethod

Steps to reproduce:

  1. Use original content of example/main.dart
  2. Add flutter_radio_player: ^1.0.3 to your pubspec.yaml
  3. flutter run
    Or
    Just execute the example project folder.

Stacktrace:

E/flutter (21695): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: MissingPluginException(No implementation found for method initService on channel flutter_radio_player)
E/flutter (21695): #0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:319:7)
E/flutter (21695): <asynchronous suspension>
E/flutter (21695): #1      FlutterRadioPlayer.init (package:flutter_radio_player/flutter_radio_player.dart:23:27)
E/flutter (21695): #2      _MyAppState.initRadioService (package:saloniker/main.dart:29:33)
E/flutter (21695): #3      _MyAppState.initState (package:saloniker/main.dart:24:5)
E/flutter (21695): #4      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4355:58)
E/flutter (21695): #5      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
E/flutter (21695): #6      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
E/flutter (21695): #7      Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
E/flutter (21695): #8      RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1028:16)
E/flutter (21695): #9      RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:999:5)      
E/flutter (21695): #10     RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:942:17)
E/flutter (21695): #11     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2412:19)
E/flutter (21695): #12     RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:941:13)
E/flutter (21695): #13     WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:819:7)
E/flutter (21695): #14     WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:804:7)
E/flutter (21695): #15     _rootRun (dart:async/zone.dart:1122:38)
E/flutter (21695): #16     _CustomZone.run (dart:async/zone.dart:1023:19)
E/flutter (21695): #17     _CustomZone.runGuarded (dart:async/zone.dart:925:7)
E/flutter (21695): #18     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:965:23)
E/flutter (21695): #19     _rootRun (dart:async/zone.dart:1126:13)
E/flutter (21695): #20     _CustomZone.run (dart:async/zone.dart:1023:19)
E/flutter (21695): #21     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:949:23)
E/flutter (21695): #22     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:23:15)
E/flutter (21695): #23     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:384:19)
E/flutter (21695): #24     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:418:5)
E/flutter (21695): #25     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
E/flutter (21695):
I/flutter (21695): ══╡ EXCEPTION CAUGHT BY SERVICES LIBRARY ╞══════════════════════════════════════════════════════════
I/flutter (21695): The following MissingPluginException was thrown while activating platform stream on channel
I/flutter (21695): flutter_radio_player_stream:
I/flutter (21695): MissingPluginException(No implementation found for method listen on channel
I/flutter (21695): flutter_radio_player_stream)
I/flutter (21695):
I/flutter (21695): When the exception was thrown, this was the stack:
I/flutter (21695): #0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:319:7)
I/flutter (21695): <asynchronous suspension>
I/flutter (21695): #1      EventChannel.receiveBroadcastStream.<anonymous closure> (package:flutter/src/services/platform_channel.dart:517:29)
I/flutter (21695): #3      EventChannel.receiveBroadcastStream.<anonymous closure> (package:flutter/src/services/platform_channel.dart:503:64)
I/flutter (21695): #11     _StreamBuilderBaseState._subscribe (package:flutter/src/widgets/async.dart:135:37)
I/flutter (21695): #12     _StreamBuilderBaseState.initState (package:flutter/src/widgets/async.dart:109:5)
I/flutter (21695): #13     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4355:58)        
I/flutter (21695): #14     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #15     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #16     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5551:32)
I/flutter (21695): #17     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #18     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #19     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #21     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #22     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #23     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #24     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #25     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #26     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #27     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #28     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #29     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #30     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)        
I/flutter (21695): #31     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #32     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #33     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #34     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #35     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #36     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #37     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #38     ParentDataElement.mount (package:flutter/src/widgets/framework.dart:4617:11)
I/flutter (21695): #39     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #40     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5551:32)
I/flutter (21695): #41     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #42     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #43     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #44     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #45     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #46     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)        
I/flutter (21695): #47     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #48     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #49     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #50     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #51     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #52     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)        
I/flutter (21695): #53     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #54     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #55     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #56     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #57     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #58     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #59     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #60     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #61     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #62     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #63     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #64     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #65     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #66     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #67     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #68     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)        
I/flutter (21695): #69     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #70     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #71     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #72     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #73     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #74     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #75     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #76     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #77     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #78     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)        
I/flutter (21695): #79     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #80     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #81     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #82     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #83     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #84     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #85     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #86     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #87     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #88     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #89     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #90     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #91     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #92     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #93     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #94     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #95     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #96     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #97     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #98     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #99     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #100    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #101    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #102    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #103    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #104    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #105    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #106    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #107    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #108    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #109    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #110    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #111    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)    
I/flutter (21695): #112    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #113    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #114    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #115    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #116    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #117    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #118    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #119    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #120    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #121    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #122    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #123    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #124    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #125    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #126    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)        
I/flutter (21695): #127    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #128    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #129    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #130    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #131    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #132    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #133    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #134    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #135    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #136    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #137    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #138    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)        
I/flutter (21695): #139    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #140    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #141    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #142    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #143    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #144    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #145    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #146    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #147    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #148    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #149    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #150    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #151    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #152    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #153    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #154    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #155    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #156    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #157    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #158    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #159    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #160    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #161    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #162    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #163    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #164    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #165    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #166    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #167    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #168    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #169    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #170    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #171    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #172    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #173    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #174    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #175    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #176    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #177    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #178    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #179    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #180    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #181    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #182    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #183    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #184    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)    
I/flutter (21695): #185    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #186    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #187    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #188    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #189    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #190    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #191    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #192    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #193    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #194    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #195    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #196    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #197    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #198    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #199    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #200    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #201    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #202    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #203    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5551:32)
I/flutter (21695): #204    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #205    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #206    _TheatreElement.mount (package:flutter/src/widgets/overlay.dart:591:16)
I/flutter (21695): #207    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #208    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #209    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #210    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #211    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #212    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)        
I/flutter (21695): #213    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #214    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #215    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #216    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #217    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #218    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)        
I/flutter (21695): #219    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #220    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #221    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #222    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #223    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #224    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #225    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #226    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #227    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #228    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #229    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #230    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #231    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #232    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #233    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #234    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #235    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #236    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #237    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #238    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #239    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #240    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)        
I/flutter (21695): #241    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #242    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #243    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #244    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #245    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #246    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)        
I/flutter (21695): #247    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #248    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #249    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #250    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #251    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #252    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #253    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #254    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #255    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #256    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #257    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)    
I/flutter (21695): #258    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #259    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #260    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #261    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #262    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #263    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #264    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #265    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #266    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #267    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #268    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #269    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #270    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #271    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)        
I/flutter (21695): #272    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #273    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #274    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #275    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #276    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #277    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #278    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #279    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #280    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #281    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #282    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #283    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #284    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #285    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #286    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #287    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #288    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #289    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)        
I/flutter (21695): #290    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #291    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #292    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #293    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #294    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)    
I/flutter (21695): #295    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #296    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #297    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #298    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #299    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #300    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #301    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #302    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #303    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #304    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #305    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #306    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #307    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #308    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #309    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)    
I/flutter (21695): #310    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #311    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #312    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #313    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #314    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #315    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #316    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #317    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #318    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #319    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #320    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #321    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)    
I/flutter (21695): #322    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #323    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #324    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #325    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #326    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #327    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #328    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #329    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)        
I/flutter (21695): #330    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #331    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #332    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #333    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)    
I/flutter (21695): #334    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #335    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #336    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #337    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #338    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #339    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #340    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #341    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #342    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #343    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #344    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #345    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #346    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #347    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #348    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #349    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #350    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #351    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #352    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #353    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #354    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #355    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #356    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #357    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)        
I/flutter (21695): #358    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #359    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #360    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #361    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #362    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #363    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #364    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #365    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #366    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #367    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #368    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #369    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #370    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #371    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #372    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #373    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #374    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #375    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #376    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #377    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #378    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #379    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #380    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (21695): #381    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #382    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #383    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #384    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #385    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #386    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #387    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #388    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #389    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #390    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #391    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #392    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #393    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #394    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #395    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
Syncing files to device GM1910...                                5.188ms (!)
I/flutter (21695): #396    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #397    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #398    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #399    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #400    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #401    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #402    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #403    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #404    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #405    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #406    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #407    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #408    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #409    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #410    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #411    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #412    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #413    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #414    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #415    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #416    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #417    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #418    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #419    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #420    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #421    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #422    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #423    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (21695): #424    Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (21695): #425    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (21695): #426    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (21695): #427    ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (21695): #428    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (21695): #429    Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (21695): #430    RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1028:16)
I/flutter (21695): #431    RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:999:5)
I/flutter (21695): #432    RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:942:17)
I/flutter (21695): #433    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2412:19)
I/flutter (21695): #434    RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:941:13)
I/flutter (21695): #435    WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:819:7)
I/flutter (21695): #436    WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:804:7)
I/flutter (21695): #445    _Timer._runTimers (dart:isolate-patch/timer_impl.dart:384:19)
I/flutter (21695): #446    _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:418:5)
I/flutter (21695): #447    _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
I/flutter (21695): (elided 16 frames from package dart:async and package dart:async-patch)

how to get current audo level

Hi,

This amazing library was a game changer to implement a stream player in a easy way but I miss some feature that maybe could be included soon or in a easy way how to get the current playback audio level to plot it.

edit: done, I figured out how to do it outside the lib, thanks!

Problems in iOS

Hi, I've been testing the plugin and I loved it, on Android it works perfectly, but on iOS I found a couple of drawbacks. I'll explain my case.

I have an app, with two views one called Home (which would be the screen you see when you start the app) and one called Radio (this is where I implement the plugins). Then from Home I can enter to the radio (I do this because the app has more functionalities from which you can access from Home).

The first inconvenience is that if from Home I enter to Radio and then I return to Home and then I enter again to Radio, the app closes immediately.

The error is generated in the following code:

and the console displays the following:

in general, I could solve it saving the reproduction state in the Storage of the device, because when I enter to Radio for the second time, the following code is executed again and there the error is generated:

await _reproductor.init("title", "description","URL", "false");

Then, when I have the status of "started" the transmission, I avoid that code to be executed again, and when I do that, the plugins works again well.

The next problem I found is in the second plan playback. If the app is open in Radio, the controls in background work correctly, but if the app is in Home, the controls don't work, and when I put play/pause the app closes giving the same error as above.

I tested it on an iPhone 7 with iOS 13.5.5 and an iPhone 11 pro Max with iOS 13.5,

Greetings.

Record audio

Hello, It's not a Issue.
I request for a feature, if it's possible to add possibility to record video if user want and store it locally

Navigation not working in example

The noob that i am is using the suplied example as boilerplate for my app.
Everything works fine.
Now i want to add 1 or 2 static text widgets/pages but i cant seem to get the navigation in the bottomNavigationBar working.
Can somebody take a look at that and maybe even get it to work?

I just cant wrap my head around why it isnt working, and the noobnes of me prevent me from fixing.

lateinit property coreService has not been initialized.

hello Sithira,
nice package (:

Do you know why when I try to play this radio I'm getting this error?
http://cms.sintonizar.radio.br:8088/cms/cms/icecast.audio

E/flutter (11581): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(error, lateinit property coreService has not been initialized, null)
E/flutter (11581): #0      StandardMethodCodec.decodeEnvelope 
package:flutter/…/services/message_codecs.dart:572
E/flutter (11581): #1      MethodChannel._invokeMethod 
package:flutter/…/services/platform_channel.dart:161
E/flutter (11581): <asynchronous suspension>
E/flutter (11581): #2      MethodChannel.invokeMethod 
package:flutter/…/services/platform_channel.dart:334
E/flutter (11581): #3      FlutterRadioPlayer.playOrPause 

PendingIntent Flag missing in Android > 31

In Android 31 i'm getting an error, that the PendingIntent needs a flag.
I tried to fix it by adding "PendingIntent.FLAG_IMMUTABLE", but i had no luck.
Is there a solution for this problem?

This is the error log:

Launching lib/main.dart on sdk gphone64 arm64 in debug mode...
✓  Built build/app/outputs/flutter-apk/app-debug.apk.
Connecting to VM Service at ws://127.0.0.1:58465/2GRamNiEcaY=/ws
I/javaClass(10003): Calling to method: initService
I/javaClass(10003): start service invoked
I/javaClass(10003): Attempting to initialize service...
I/javaClass(10003): Service not bound, binding now....
I/javaClass(10003): Mapping method call to player item object
I/javaClass(10003): Firing up service. (onStartCommand)...
I/javaClass(10003): LocalBroadCastManager Received...
W/t.studiopiu.vm(10003): Accessing hidden method Landroid/media/AudioTrack;->getLatency()I (unsupported, reflection, allowed)
I/ExoPlayerImpl(10003): Init 66048fd [ExoPlayerLib/2.13.1] [emulator64_arm64, sdk_gphone64_arm64, Google, 31]
I/javaClass(10003): Pushing Event: flutter_radio_stopped
I/javaClass(10003): onPlayerStateChanged: STOPPED
I/javaClass(10003): Pushing Event: flutter_radio_loading
I/javaClass(10003): onPlayerStateChanged: LOADING
D/CompatibilityChangeReporter(10003): Compat change id reported: 160794467; UID 10146; state: ENABLED
D/AndroidRuntime(10003): Shutting down VM
E/AndroidRuntime(10003): FATAL EXCEPTION: main
E/AndroidRuntime(10003): Process: com.example.app, PID: 10003
E/AndroidRuntime(10003): java.lang.RuntimeException: Unable to start service me.sithiramunasinghe.flutter.flutter_radio_player.core.StreamingCore@d40233e with Intent { cmp=com.example.app/me.sithiramunasinghe.flutter.flutter_radio_player.core.StreamingCore (has extras) }: java.lang.IllegalArgumentException: com.example.app: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
E/AndroidRuntime(10003): Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
E/AndroidRuntime(10003): 	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4661)
E/AndroidRuntime(10003): 	at android.app.ActivityThread.access$2000(ActivityThread.java:247)
E/AndroidRuntime(10003): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2095)
E/AndroidRuntime(10003): 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(10003): 	at android.os.Looper.loopOnce(Looper.java:201)
E/AndroidRuntime(10003): 	at android.os.Looper.loop(Looper.java:288)
E/AndroidRuntime(10003): 	at android.app.ActivityThread.main(ActivityThread.java:7842)
E/AndroidRuntime(10003): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(10003): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
E/AndroidRuntime(10003): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
E/AndroidRuntime(10003): Caused by: java.lang.IllegalArgumentException: com.example.app: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
E/AndroidRuntime(10003): Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
E/AndroidRuntime(10003): 	at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
E/AndroidRuntime(10003): 	at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:645)
E/AndroidRuntime(10003): 	at android.app.PendingIntent.getBroadcast(PendingIntent.java:632)
E/AndroidRuntime(10003): 	at com.google.android.exoplayer2.ui.PlayerNotificationManager.createBroadcastIntent(PlayerNotificationManager.java:1395)
E/AndroidRuntime(10003): 	at com.google.android.exoplayer2.ui.PlayerNotificationManager.createPlaybackActions(PlayerNotificationManager.java:1351)
E/AndroidRuntime(10003): 	at com.google.android.exoplayer2.ui.PlayerNotificationManager.<init>(PlayerNotificationManager.java:658)
E/AndroidRuntime(10003): 	at com.google.android.exoplayer2.ui.PlayerNotificationManager.<init>(PlayerNotificationManager.java:568)
E/AndroidRuntime(10003): 	at com.google.android.exoplayer2.ui.PlayerNotificationManager.createWithNotificationChannel(PlayerNotificationManager.java:521)
E/AndroidRuntime(10003): 	at me.sithiramunasinghe.flutter.flutter_radio_player.core.StreamingCore.onStartCommand(StreamingCore.kt:248)
E/AndroidRuntime(10003): 	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4643)
E/AndroidRuntime(10003): 	... 9 more
I/Process (10003): Sending signal. PID: 10003 SIG: 9
Lost connection to device.
Exited (sigterm)

I tried this, but had no luck with it:
(android/src/main/kotlin/me/sithiramunasinghe/flutter/flutter_radio_player/core/StreamingCore)

override fun createCurrentContentIntent(player: Player): PendingIntent {
 var intent = Intent(this@StreamingCore, activity!!.javaClass)
 var contentPendingIntent = PendingIntent.getActivity(this@StreamingCore, 0, intent, PendingIntent.FLAG_IMMUTABLE );
   return contentPendingIntent;
   }

Device: Pixel 4 API 31 - Android 12.0

[✓] Flutter (Channel beta, 2.9.0-0.1.pre, on macOS 12.1 21C52 darwin-arm, locale de-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 13.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2020.3)
[✓] VS Code (version 1.63.2)
[✓] Connected device (3 available)

Bug: Play/pause button first start

Only at the first start of the radio, the status of the button is play but should be paused. Music is playing and show play button.

After press on play button the status of the button get correct.

Tested with: ios iphone X 13.3.1

Another SimpleCache instance uses the folder:

I'm having the following error in multiple devices isn't all the time but is crashing the app, it looks like it is something to do with SimpleExoPlayer caching process but I would like to see if you are familiar with this? and if can ve resolve from the library point of view.

Fatal Exception: java.lang.RuntimeException
Unable to start service me.sithiramunasinghe.flutter.flutter_radio_player.core.Streaming
Core@f008310 with Intent { cmp=com.tex.app/me.sithiramunasinghe.flutter.flutter_radio_player.core.StreamingCore (has extras) }: java.lang.IllegalStateException: Another SimpleCache instance uses the folder: /data/user/0/com.test.app/cache

Screen Shot 2020-06-21 at 7 36 39 PM

Thanks!.

Android building problem

Hi, thank you for your work.
I'm trying to use the library on Android but i'm getting error on building phase:

**e: /Users/acetovi/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.7/android/src/main/kotlin/me/sithiramunasinghe/flutter/flutter_radio_player/core/StreamingCore.kt: (121, 90): Type mismatch: inferred type is String? but String was expected
e: /Users/acetovi/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.7/android/src/main/kotlin/me/sithiramunasinghe/flutter/flutter_radio_player/core/StreamingCore.kt: (123, 63): Type mismatch: inferred type is String? but String was expected
e: /Users/acetovi/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.7/android/src/main/kotlin/me/sithiramunasinghe/flutter/flutter_radio_player/core/StreamingCore.kt: (174, 32): Type mismatch: inferred type is String? but String was expected

FAILURE: Build failed with an exception.**

On IOS device no problems.

Can you help me with this?
Thanks

Null can not be a value of a non-null type AudioFocusRequest

Android Build faild with following error:

...../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.1.0/android/src/main/kotlin/me/sithiramunasinghe/flutter/flutter_radio_player/core/StreamingCore.kt: (62, 51): Null can not be a value of a non-null type AudioFocusRequest

playing from radio list

i have list of radio url , i want to play that radio when url is clicked , any suggestion ?

Fatal error

Fatal error: Unexpectedly found nil while unwrapping an Optional value: file /Users/linar/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_radio_player-1.0.5/ios/Classes/SwiftFlutterRadioPlayerPlugin.swift, line 109

Cannot run app Null Safety error

The recent flutter update does not let me debug/build the app because the package does not support null safety.
Please update.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.