Android Studio 在我的flutter应用程序中使用音频播放器包时遇到问题

atmip9wb  于 2023-03-09  发布在  Android
关注(0)|答案(5)|浏览(257)

上周我开始使用Flutter,但我的音频播放器软件包出现了这个问题。我正在Udemy用Dart进行Flutter开发训练营。我几乎遵循了视频中的所有内容,但我收到了一个巨大的错误信息,我无法解决。
这是我的代码:

import 'package:flutter/material.dart';
import 'package:audioplayers/audioplayers.dart';
void main() => runApp(XylophoneApp());

class XylophoneApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: Colors.lightBlue,
        body: SafeArea(
          child: Container(
            child: Center(
              child: TextButton(
                onPressed: (){
                  final player = AudioCache();
                  player.play('assets/note1');
                },
                child: Text(
                  'click me'
                ),
              ),
            ),
          ),
        ),
      ),
    );
  }
}

这是我得到的错误消息:正在运行Gradle任务"assembleDebug ..." e:在依赖项中发现不兼容的类。请从类路径中删除这些类或使用"-Xskip-metadata-version-check"隐藏错误e:C:/用户/victo/. gradle/缓存/转换-2/文件-2.1/24fa3aa8d2270e5eb067bbe36e9b7563/jetified-kotlin-标准数据库-1.5.10.jar !/元信息/kotlin-标准数据库. kotlin_模块:模块是用不兼容版本的Kotlin编译的。其元数据的二进制版本是1.5.1,预期版本是1.1.15 ...(消息比这大得多)

  • 出了什么问题:执行任务":audiopeers:compileDebugKotlin"失败。

编译错误。有关详细信息,请参阅日志

  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的见解。
  • https://help.gradle.org获取更多帮助

构建在21s内失败,异常:Gradle任务assembleDebug失败,退出代码为1

    • 我已经看到此消息元数据的二进制版本是1.5.1,预期版本是1.1.15**,但我不知道如何处理它或如何解决它。

这是我的博客。

name: xylophone
description: A new Flutter application.

version: 1.0.0+1

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  audioplayers: ^0.19.1
  cupertino_icons: ^0.1.2

dev_dependencies:
  flutter_test:
    sdk: flutter

flutter:

  uses-material-design: true

  assets:
    - assets/
bqf10yzr

bqf10yzr1#

在gradle文件中,转至build.gradle(项目:然后,更改以下代码(在buildscript中):

ext.kotlin_version = '1.3.50'

ext.kotlin_version = '1.4.32'

或者什么曾经最新版本的Kotlin可用,并确保更新Kotlin版本的Android Studio以及
按照说明操作后,您的错误将得到解决。

rggaifut

rggaifut2#

您可以查看错误日志Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.15,但尝试1.3.50,我有应用程序与音频播放器我使用这个版本,如果它不工作使用1.1.15或建议的版本后,更改版本卸载应用程序并运行flutter清理并再次运行
尝试在build.gradle中降级到较低的Kotlin版本

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        google()
        jcenter()
    }

}

如果在以下情况下不起作用,也请参考此答案

sy5wg1nm

sy5wg1nm3#

迁移指南
依赖性:音频播放器:^0.x.x

依赖性:音频播放器:^1.0.1
https://github.com/bluefireteam/audioplayers/blob/main/migration_guide.md
try with this

AudioCache已经死了,源代码万岁其中一个主要的变化是我想“杀死”AudioCache API,因为它给用户带来了巨大的混乱(尽管我们尽了最大的努力记录一切)。

我们仍然有AudioCache类,但它的API专门用于将资产文件转换为本地文件、缓存它们并提供路径。然而,它通常不需要由最终用户使用,因为AudioPlayer本身现在能够播放来自任何源的音频。
什么是源?它是一个密封类,可以是以下类型之一:
UrlSource:从Internet设备的远程URL获取音频FileSource:访问用户设备中的文件,该文件可能由文件选取器AssetSource选择:播放与您的应用捆绑在一起的资源,通常位于资源目录BytesSource中(仅限部分平台):直接传入音频字节(从任何地方读取)。如果使用AssetSource,AudioPlayer将自动使用其AudioCache示例(如果未更改,默认为全局缓存)。这将统一AudioPlayer下的所有播放API,并为大多数用户完全删除AudioCache细节。

l0oc07j2

l0oc07j24#

如果您使用的是最新版本的audioplayers(在我的示例中是^1.0.1),则代码应该如下所示

onPressed: () async {
                final player = AudioPlayer();
                await player.play(AssetSource('note1.wav'));
              },

祝你在学习中一切顺利

yk9xbfzb

yk9xbfzb5#

根据最新的稳定版本,AudioCache()处理得不好,您可以尝试以下操作

ElevatedButton(
          onPressed: () {
            final player = AudioPlayer();
            player.play(AssetSource('s1.wav'));
          },
          child: const Text(
            'Click Me',
          ),
        ),

注:在player.play(AssetSource('s1.wav'))中-在s1.wav的位置,仅给予文件名,而不是给出完整路径,如assets/s1.wav

相关问题