flutterexodrm 0.0.5 copy "flutterexodrm: ^0.0.5" to clipboard
flutterexodrm: ^0.0.5 copied to clipboard

A new plugin

example/lib/main.dart

import 'dart:async';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:drm_wv_fp_player_example/PlayerPage.dart';
import 'model/media.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final appTitle = 'Flutter Exoplayer (Beta)';

    return MaterialApp(
      title: appTitle,
      debugShowCheckedModeBanner: false,
      home: MyHomePage(title: appTitle),
    );
  }
}

class MyHomePage extends StatefulWidget {
  final String title;

  MyHomePage({Key key, this.title}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  bool dataReturned;
  List<Media> media;

  Future<List<Media>> loadMediaFiles() async {
    String jsonString =
        await rootBundle.loadString('assets/media.exolist.json');
    setState(() {
      dataReturned = true;
      media = Media.parseMediaLists(jsonString);
    });
    return Media.parseMediaLists(jsonString);
  }

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    dataReturned = false;
    media = new List();
    loadMediaFiles();
  }

  @override
  Widget build(BuildContext context) {
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
    ]);

    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: !dataReturned
          ? /* FutureBuilder<List<Media>>(
        future: loadMediaFiles(),
        builder: (context, snapshot) {
          if (snapshot.hasError) print(snapshot.error);
          return snapshot.hasData
              ? PhotosList(medias: snapshot.data)
              : Center(child: CircularProgressIndicator());
        },
      )*/
          Container()
          : PhotosList(medias: media),
    );
  }
}

class PhotosList extends StatelessWidget {
  final List<Media> medias;

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

  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      itemCount: medias.length,
      itemBuilder: (context, index) {
        return StuffInTiles(medias[index], index, medias);
      },
    );
  }
}

class StuffInTiles extends StatefulWidget {
  final Media myTile;
  final List<Media> medias;
  final int index;
  BuildContext _context;

  StuffInTiles(this.myTile, this.index, this.medias);

  @override
  _StuffInTilesState createState() => _StuffInTilesState();
}

class _StuffInTilesState extends State<StuffInTiles> {
  Sample returnSample;
  Widget _buildSubTiles(Sample t) {
    return ListTile(
        dense: true,
        enabled: true,
        isThreeLine: false,
        onLongPress: () => print("long press"),
        onTap: () async {
          print("url ${t.uri ?? ""}");
          print("url ${t.drm_license_url ?? ""}");
          print("url ${t.playedLength ?? ""}");
          Sample result = await Navigator.push(
              widget._context,
              MaterialPageRoute(
                  builder: (_) =>
                      Player(
                        sampleVideo: returnSample != null ? returnSample.name == t.name ? returnSample : t : t,
                      )));
          if (result != null) {
//            SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values);
            print("back from player");
            setState(() {
              returnSample = result;
              print(t.playedLength);
              SystemChrome.setPreferredOrientations([
                DeviceOrientation.portraitUp,
              ]);
            });
          }
        },
        subtitle: Text(
          t.extension ?? "",
        ),
        selected: true,
        title: Text(t.name,
            style: TextStyle(fontSize: 18.0, color: Colors.black54)));
  }

  Widget _buildTiles(Media t) {
    return ExpansionTile(
      key: PageStorageKey<int>(3),
      title: Text(t.name),
      children: t.samples.map(_buildSubTiles).toList(),
    );
  }

  @override
  Widget build(BuildContext context) {
    widget._context = context;
    return _buildTiles(widget.myTile);
  }
}

//ChewieDemo(sampleVideo: t,)
0
likes
20
pub points
0%
popularity

Publisher

unverified uploader

A new plugin

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, http, meta

More

Packages that depend on flutterexodrm