PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: Source error, null, null)

Viewed 9107

**HI I am trying to play a live news video in my flutter app it is .m3u8 format but get above error. Using all of the updated dependencies. I want to play live news in my flutter app. I have the url you can also try it. URL: http://161.97.162.167:1936/live/tnnnews/playlist.m3u8 When I use another url with .m3u8 it plays on flutter app but when I paste the live url code it throws me the above error. **

Code

import 'package:video_player/video_player.dart';
import 'package:flutter/material.dart';


class VideoApp extends StatefulWidget {
  @override
  _VideoAppState createState() => _VideoAppState();
}

class _VideoAppState extends State<VideoApp> {
  VideoPlayerController _controller;

  @override
  void initState() {
    super.initState();
    _controller = VideoPlayerController.network(
        'http://161.97.162.167:1936/live/tnnnews/playlist.m3u8')
      ..initialize().then((_) {
        // Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
        setState(() {});
      });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Video Demo',
      home: Scaffold(
        body: Center(
          child: _controller.value.isInitialized
              ? AspectRatio(
            aspectRatio: _controller.value.aspectRatio,
            child: VideoPlayer(_controller),
          )
              : Container(),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: () {
            setState(() {
              _controller.value.isPlaying
                  ? _controller.pause()
                  : _controller.play();
            });
          },
          child: Icon(
            _controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
          ),
        ),
      ),
    );
  }

  @override
  void dispose() {
    super.dispose();
    _controller.dispose();
  }
}
5 Answers

Put this in your AndroidManifest.xml

<application ...
android:usesCleartextTraffic="true"

This issue happened with me and after searching I found the issue is in link itself As the library will only work if the extension of your link is .mp4 and if not you have to parse it to contain the .mp4 extension

Perform a Flutter clean and run the application .

I've done this and it worked for me

  • uninstall the app
  • run flutter clean
  • run flutter pub get
  • run your application again

Hey i got the same error today in 2022/19/8 .Just adding fijkplayer: ^0.10.0 in your project pubsec.yaml file it would work then.

Related