flutter audioplayers 插件不播放声音而是冻结应用程序
flutter audioplayers plugin don't play sound instead freezes the app
我正在使用 flutter 插件 audioplayers: ^0.15.1
,下面的代码在 Android 中有效,但在 IOS 中无效,而不是冻结应用程序。
我 运行 ios 模拟器中的代码,然后单击按钮。它假设播放 mp3 文件,但根本没有声音。该应用程序被冻结。 assets_audio_player 插件也有同样的问题。
请帮忙解决这个问题。
import 'package:flutter/material.dart';
import 'package:audioplayers/audio_cache.dart';
void main() => runApp(XylophoneApp());
class XylophoneApp extends StatelessWidget {
void playNote(int noteNO) {
final player = AudioCache();
player.play('note$noteNO.wav');
}
Expanded buildKey(int no, Color color) {
return Expanded(
child: FlatButton(
color: color,
onPressed: () {
playNote(no);
},
),
);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
backgroundColor: Colors.black,
body: SafeArea(
child: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
buildKey(1,Colors.red),
buildKey(2,Colors.orange),
buildKey(3,Colors.yellow),
buildKey(4,Colors.green),
buildKey(5,Colors.blue),
buildKey(6,Colors.indigo),
buildKey(7,Colors.purple),
],
),
),
),
),
);
}
}
void playNote(int noteNO) {
final player = AudioCache();
player.play('note$noteNO.wav');
}
调试控制台:Screenshot
iOS => call startHeadlessService, playerId 6178a81e-22dc-485b-bfc8-f6a8402f518e
iOS => call play, playerId 6178a81e-22dc-485b-bfc8-f6a8402f518e
play!
isLocal: 1 1
volume: 1.000000 1
position: 0 (null)
setUrl /Users/akshay/Library/Developer/CoreSimulator/Devices/575F03D0-0EBE-4813-970A-14128CEF49ED/data/Containers/Data/Application/394C51F0-1ABD-4315-921A-F92E97CC1F98/Library/Caches/note5.wav
[VERBOSE-2:profiler_metrics_ios.mm(184)] Error retrieving thread information: (ipc/send) invalid destination port
player status: 2
player status: 2
player status: 2
由于您使用的是 ^,它正在将您升级到 0。16.x(主版本号为 0 的最新版本)
很可能您安装了最新可用的音频播放器包 (0.16.0),它们存在导致应用程序在 iOS 设备 https://github.com/luanpotter/audioplayers/issues/613 上崩溃的问题
您可以简单地在 pubspec.yaml 和 运行 packages get 命令中降级到 0.15.1(删除 ^)以使其工作
更改 pubspec.yaml 文件。
audioplayers:
git:
url: git://github.com/luanpotter/audioplayers.git
我正在使用 flutter 插件 audioplayers: ^0.15.1
,下面的代码在 Android 中有效,但在 IOS 中无效,而不是冻结应用程序。
我 运行 ios 模拟器中的代码,然后单击按钮。它假设播放 mp3 文件,但根本没有声音。该应用程序被冻结。 assets_audio_player 插件也有同样的问题。
请帮忙解决这个问题。
import 'package:flutter/material.dart';
import 'package:audioplayers/audio_cache.dart';
void main() => runApp(XylophoneApp());
class XylophoneApp extends StatelessWidget {
void playNote(int noteNO) {
final player = AudioCache();
player.play('note$noteNO.wav');
}
Expanded buildKey(int no, Color color) {
return Expanded(
child: FlatButton(
color: color,
onPressed: () {
playNote(no);
},
),
);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
backgroundColor: Colors.black,
body: SafeArea(
child: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
buildKey(1,Colors.red),
buildKey(2,Colors.orange),
buildKey(3,Colors.yellow),
buildKey(4,Colors.green),
buildKey(5,Colors.blue),
buildKey(6,Colors.indigo),
buildKey(7,Colors.purple),
],
),
),
),
),
);
}
}
void playNote(int noteNO) {
final player = AudioCache();
player.play('note$noteNO.wav');
}
调试控制台:Screenshot
iOS => call startHeadlessService, playerId 6178a81e-22dc-485b-bfc8-f6a8402f518e
iOS => call play, playerId 6178a81e-22dc-485b-bfc8-f6a8402f518e
play!
isLocal: 1 1
volume: 1.000000 1
position: 0 (null)
setUrl /Users/akshay/Library/Developer/CoreSimulator/Devices/575F03D0-0EBE-4813-970A-14128CEF49ED/data/Containers/Data/Application/394C51F0-1ABD-4315-921A-F92E97CC1F98/Library/Caches/note5.wav
[VERBOSE-2:profiler_metrics_ios.mm(184)] Error retrieving thread information: (ipc/send) invalid destination port
player status: 2
player status: 2
player status: 2
由于您使用的是 ^,它正在将您升级到 0。16.x(主版本号为 0 的最新版本)
很可能您安装了最新可用的音频播放器包 (0.16.0),它们存在导致应用程序在 iOS 设备 https://github.com/luanpotter/audioplayers/issues/613 上崩溃的问题 您可以简单地在 pubspec.yaml 和 运行 packages get 命令中降级到 0.15.1(删除 ^)以使其工作
更改 pubspec.yaml 文件。
audioplayers:
git:
url: git://github.com/luanpotter/audioplayers.git