我正在学习一般的 Flutter 和移动开发,并且在我的第一个应用程序的开发中发现了一个问题。
应用本身只不过是一个资产播放器,它应该接收一个包含 url 的 var 并播放或停止音频流(它是本地广播),但资产根本不播放音频流。
import 'package:audioplayers/audioplayers.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: MusicApp(),
);
}
}
class MusicApp extends StatefulWidget {
@override
_MusicAppState createState() => _MusicAppState();
}
class _MusicAppState extends State<MusicApp> {
bool playing = false;
IconData playBtn = Icons.play_arrow;
String url = 'https://paineldj.com.br:7266/stream';
AudioPlayer _player;
@override
void initState() {
super.initState();
_player = new AudioPlayer();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
width: double.infinity,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/bg.jpg"),
fit: BoxFit.cover,
),
),
child: Padding(
padding: EdgeInsets.only(
top: 48.0,
),
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Center(
child: Container(
width: double.infinity,
height: 175.0,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30.0),
image: DecorationImage(
image: AssetImage("assets/logo.jpg"),
fit: BoxFit.fill,
),
),
),
),
SizedBox(
height: 30.0,
),
Expanded(
child: Container(
decoration: BoxDecoration(
color: Colors.black.withOpacity(0.5),
borderRadius: BorderRadius.only(
topLeft: Radius.circular(30.0),
topRight: Radius.circular(30.0),
),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
IconButton(
iconSize: 60.0,
color: Colors.deepPurple.shade300,
onPressed: () {
if (!playing) {
_player.play(url);
setState(() {
playBtn = Icons.pause;
playing = true;
});
} else {
_player.stop();
setState(() {
playBtn = Icons.play_arrow;
playing = false;
});
}
},
icon: Icon(playBtn),
),
],
),
],
),
),
),
],
),
),
),
),
);
}
}
据我所知,这个资产支持 url 来源,我的应用程序没有语法或执行错误。
我做错了什么?