如何在Flutter中播放在线广播流?

时间:2019-01-07 09:42:43

标签: dart flutter audio-streaming radio

我正在研究要播放直播广播的广播应用程序。我有一个URL,通过它我可以广播和播放广播。如何使用此网址播放在线流?这是我的汽蒸网址:

"streams" : -[
-{
"stream" : http://media.powerfm.se:80/high,
"bitrate" : 160,
"content_type" : ?,
"status" : 1,
"listeners" : 0
},
-{
"stream" : fffff,
"bitrate" : 0,
"content_type" : ?,
"status" : 0,
"listeners" : 0
 }

3 个答案:

答案 0 :(得分:1)

Flutter有一个名为Flutter Radio https://pub.dev/packages/flutter_radio的插件。 设置非常简单。

只需创建一个新的flutter项目,然后在您的pubspec.yaml文件中添加flutter_radio作为依赖项。将以下代码粘贴到main.dart中,用url替换url字符串,然后在模拟器和wola上构建并运行项目!

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

import 'package:flutter_radio/flutter_radio.dart';

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => new _MyAppState();
}

class _MyAppState extends State<MyApp> {

  String url = "https://ia802708.us.archive.org/3/items/count_monte_cristo_0711_librivox/count_of_monte_cristo_001_dumas.mp3";

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

  Future<void> audioStart() async {
    await FlutterRadio.audioStart();
    print('Audio Start OK');
  }

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new Scaffold(
        appBar: new AppBar(
          title: const Text('Audio Plugin Android'),
        ),
        body: new Center(
          child: Column(
            children: <Widget>[
              FlatButton(
                child: Icon(Icons.play_circle_filled),
                onPressed: () => FlutterRadio.play(url: url),
              ),
              FlatButton(
                child: Icon(Icons.pause_circle_filled),
                onPressed: () => FlutterRadio.pause(),
              )
            ],
          )
        ),
      ),
    );
  }
}

答案 1 :(得分:0)

据我了解,Flutter无法处理此用例,您将不得不通过所需平台的插件来处理本机代码中的音频流。

This seems to be a popular plugin that handles audio,但是它是否处理流以及如何将其用于您的特定用例是一个不同的问题。

答案 2 :(得分:0)

我知道我对此有些迟了,但请看一下Fluttery Audio。我一路上发现的一些建议,

  1. Android设备并非一模一样,其中一些设备可以使用aac蒸汽运行,而其他设备则不能。
  2. 对于ios设备,如果不是https流,则需要将此代码块添加到.plist文件中。

    <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>

  3. Android可以在后台iOS中播放音频,直到对库进行了更改。