Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

**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();
  }
}
like image 612
Sanny khan Avatar asked Sep 04 '25 01:09

Sanny khan


2 Answers

Put this in your AndroidManifest.xml

<application ...
android:usesCleartextTraffic="true"
like image 154
Jeferson Avatar answered Sep 07 '25 19:09

Jeferson


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

like image 41
mohamed yahia Avatar answered Sep 07 '25 20:09

mohamed yahia