首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flutter:如何在没有mp3扩展的情况下流式传输由http url提供的实时音频

Flutter:如何在没有mp3扩展的情况下流式传输由http url提供的实时音频
EN

Stack Overflow用户
提问于 2019-12-19 16:27:00
回答 3查看 2.3K关注 0票数 3

如何在不带flutter的mp3扩展的情况下流式传输由http url提供的实时音频?它不是一个远程文件,而是一个类似网络广播的流媒体url。

EN

回答 3

Stack Overflow用户

发布于 2019-12-19 16:40:58

您可以使用package https://pub.dev/packages/url_audio_stream

github https://github.com/tcronis/url_audio_stream

代码片段

代码语言:javascript
复制
AudioStream stream = new AudioStream("https://your_url_goes_here.com");
stream.start();
stream.pause();
stream.resume();
stream.stop();

完整的示例代码

代码语言:javascript
复制
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:url_audio_stream/url_audio_stream.dart';

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

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

class _MyAppState extends State<MyApp> {
  String _platformVersion = 'Unknown';

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


  static AudioStream stream = new AudioStream("your url");
  Future<void> callAudio(String action) async{
    if(action == "start"){
      stream.start();
    }else if(action == "stop"){
      stream.stop();
    }else if(action == "pause"){
      stream.pause();
    }else{
      stream.resume();
    }
  }


  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Column(
            children: <Widget>[
              new RaisedButton(
                child: new Text("Start"),
                onPressed: (){
                  callAudio("start");
                },
              ),
              new RaisedButton(
                child: new Text("Stop"),
                onPressed: (){
                  callAudio("stop");
                },
              ),
              new RaisedButton(
                child: new Text("Pause"),
                onPressed: (){
                  callAudio("pause");
                },
              ),
              new RaisedButton(
                child: new Text("Resume"),
                onPressed: (){
                  callAudio("resume");
                },
              )
            ],
          )
        ),
      ),
    );
  }
}
票数 3
EN

Stack Overflow用户

发布于 2019-12-19 19:58:59

它是有效的,但对于某些url,我需要在AndroidManifest.xml中做一些更改才能使其正常工作。

android:usesCleartextTraffic="true“

票数 0
EN

Stack Overflow用户

发布于 2020-06-29 00:51:44

在这里查看使用WebRadio Urls的工作示例。Link to Repo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59405813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档