exoplayer 0.0.1-dev.1 exoplayer: ^0.0.1-dev.1 copied to clipboard
A new Flutter plugin.
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:exoplayer/exoplayer.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
bool serviceState = false;
bool isPlaying = false;
bool isReady = false;
String uri =
"https://stream0.kwabcdef.tk/hls/cast-cdn.instream.audio.8012.stream/stream.m3u8";
String uri2 = "https://cdn.instream.audio/:8012/stream";
String uri3 = "https://videocloud.instream.audio:8038/stream";
String uri34 = "http://streaming02.radiosenlinea.com.ar:9802/";
static const MethodChannel _channel = const MethodChannel('exoplayer');
@override
void initState() {
super.initState();
_channel.setMethodCallHandler(_musicPlayerListener);
}
Future<dynamic> _musicPlayerListener(MethodCall call) async {
print("app -> state = ${call.arguments}");
switch (call.arguments) {
case "STATE_PLAYING":
setState(() {
isPlaying = true;
});
break;
case "STATE_PAUSED":
setState(() {
isPlaying = false;
});
break;
case "SERVICE_START":
setState(() {
serviceState = true;
});
break;
case "SERVICE_DESTROY":
setState(() {
serviceState = false;
});
break;
case "STATE_READY":
setState(() {
isReady = true;
});
break;
case "STATE_IDLE":
setState(() {
isReady = false;
});
break;
case "STATE_BUFFERING":
setState(() {
isReady = false;
});
break;
case "STATE_ENDED":
setState(() {
isReady = false;
});
break;
}
return call.method;
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: Column(
children: <Widget>[
Visibility(
visible: !serviceState,
child: FlatButton(
child: Text("Start service"),
onPressed: () {
Exoplayer.startService(Exoplayer.TYPE_PROGRESSIVE, uri3);
},
),
),
Visibility(
visible: serviceState,
child: Column(
children: <Widget>[
Visibility(
visible: isReady,
child: FlatButton(
child: Text(isPlaying ? "Pause" : "Play"),
onPressed: () =>
!isPlaying ? Exoplayer.play() : Exoplayer.pause(),
),
),
FlatButton(
child: Text("Stop service"),
onPressed: () {
Exoplayer.stopService();
},
)
],
),
),
],
),
),
),
);
}
}