3
votes

Comment puis-je lire la radio en ligne dans Flutter?

Je travaille sur une application radio dans laquelle je souhaite diffuser la radio en direct. J'ai une URL avec laquelle je vais diffuser la radio et jouer. Comment puis-je jouer au streaming en ligne en utilisant cette URL? Voici mon URL fumante:

"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
 }


2 commentaires

Avez-vous trouvé une solution? Je recherche également la même chose.


Malheureusement non


3 Réponses :


1
votes

D'après ce que j'ai compris, Flutter ne gère pas ce cas d'utilisation, et vous devrez gérer le streaming audio en code natif via des plugins pour la plate-forme souhaitée.

Cela semble être un plugin populaire qui gère l'audio , mais qu'il gère ou non les flux et comment l'utiliser pour votre cas d'utilisation spécifique, est une autre question.


0 commentaires

2
votes

Je sais que je suis un peu en retard, mais jetez un œil à Fluttery Audio . Quelques conseils que j'ai trouvés en cours de route,

  1. Les appareils Android ne se ressemblent pas tous, certains fonctionneront avec aac steams, d'autres non.
  2. Pour les appareils iOS, vous devez ajouter ce morceau de code à votre fichier .plist s'il ne s'agit pas d'un flux https.
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
  1. Android peut lire de l'audio en arrière-plan iOS ne le peut pas tant que des modifications n'ont pas été apportées à la bibliothèque.


0 commentaires

1
votes

Flutter a un plugin appelé Flutter Radio https://pub.dev/packages/flutter_radio . La configuration est assez simple.

Créez simplement un nouveau projet Flutter puis ajoutez flutter_radio comme dépendance dans votre fichier pubspec.yaml. Collez le code suivant dans votre main.dart, remplacez la chaîne d'url par votre url, puis construisez et exécutez le projet sur votre émulateur et 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 commentaires

cela fonctionne localement mais pas après la création de l'application