如何同时播放两种声音?

Posted

技术标签:

【中文标题】如何同时播放两种声音?【英文标题】:How to play two sounds at the same time? 【发布时间】:2018-02-07 07:18:57 【问题描述】:

我最近一直在尝试一些带有颤动声音的东西。使用 audioPlayer 插件。

但我正面临着一堵墙。我有背景音乐和小音效。 问题是我不能同时玩两个。如果我播放背景音乐,则不会播放音效。反之亦然。

知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

这是audioplayer 插件的问题,并且已经有一个issue 为它打开。作者表示,如果您想尝试实施它,他愿意接受拉取请求。

【讨论】:

【参考方案2】:

使用媒体播放器。使用此代码设置背景音乐:

MediaPlayer backgroundMediaPlayer = MediaPlayer.create(getApplicationContext(), Uri.parse(PATH_TO_BACKGROUND_MUSIC));
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() 
    @Override
    public void onPrepared(MediaPlayer mediaPlayer) 
        mediaPlayer.start();
    
);

然后将 PATH_TO_BACKGROUND_MUSIC 替换为背景音乐路径。

然后当你想要你的声音效果发生时,使用这个代码:

MediaPlayer soundEffectMediaPlayer = MediaPlayer.create(getApplicationContext(), Uri.parse(PATH_TO_SOUND_EFFECT));
    mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() 
        @Override
        public void onPrepared(MediaPlayer mediaPlayer) 
            mediaPlayer.start();
        
    );

然后将 PATH_TO_SOUND_EFFECT 替换为背景音乐路径。

您可以了解有关媒体播放器的信息here。

希望这会有所帮助!

【讨论】:

谢谢,但遗憾的是这行不通。它不是原生的安卓应用。但是一个使用 Flutter 框架在 dartlang 中完成的应用程序。 这给出了MediaPlayer finalized without being released 错误。

以上是关于如何同时播放两种声音?的主要内容,如果未能解决你的问题,请参考以下文章

在javascript中同时播放多个声音

同时播放两种声音的最简单方法(c++ winapi)

同时播放两种声音,其中一种通过蓝牙发送 - iOS 和 Android

如何在 Android 上异步和同时(复音)播放声音?

如何在 SwiftUI 中一键连续播放两种声音

如何同时播放两个声音?