在Android中通过AudioManager播放音频?

发布于 2024-12-12 01:10:01 字数 525 浏览 2 评论 0原文

我使用以下方式播放声音:

public class NotificationFunction implements FREFunction {
  public FREObject call(FREContext context, FREObject[] args) {
    Context appContext = context.getActivity().getApplicationContext();
    AudioManager mAudioManager = (AudioManager)     
    appContext.getSystemService(Context.AUDIO_SERVICE);
    mAudioManager.loadSoundEffects();
    mAudioManager.playSoundEffect(0);

它播放默认音效,如何让它播放自定义音效。

我也尝试过实现声音池,但它不起作用,我以标准方式实现它,但它不起作用。有什么想法吗?或者我是否可以使用音频管理器来代替声音?

I play a sound using:

public class NotificationFunction implements FREFunction {
  public FREObject call(FREContext context, FREObject[] args) {
    Context appContext = context.getActivity().getApplicationContext();
    AudioManager mAudioManager = (AudioManager)     
    appContext.getSystemService(Context.AUDIO_SERVICE);
    mAudioManager.loadSoundEffects();
    mAudioManager.playSoundEffect(0);

It plays a default sound effect, how can I get it to play a custom sound effect.

Also I have tried to implement sound pool but it doesnt work, I implemented it the standard way but it doesnt work. Any ideas why? Or if I can use the audio manager for sounds instead?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谈下烟灰 2024-12-19 01:10:01

用下面的代码检查一下

using (AudioManager am= (AudioManager)WebViewActivity.Instance.GetSystemService(Context.AudioService))
        {
            int maxVol = am.GetStreamMaxVolume(Stream.Music);
            float myVol= maxVol  * volume;

            am.SetStreamVolume(Stream.Music, (int)(myVol), 0);

            using (SoundPool soundPool = new SoundPool(1, Stream.Music, 0))
            {
                int soundFileId = soundPool.Load(soundFilePath, 1);

                soundPool.LoadComplete += (sender, eventArgs) =>
                {
                    using (SoundPool soundPoolLoaded = sender as SoundPool)
                    {
                      soundPoolLoaded.Play(soundFileId, myVol, 
                                          myVol, 0, 0, 1.0f);
                    }
                };
            }
        }

Check with following code

using (AudioManager am= (AudioManager)WebViewActivity.Instance.GetSystemService(Context.AudioService))
        {
            int maxVol = am.GetStreamMaxVolume(Stream.Music);
            float myVol= maxVol  * volume;

            am.SetStreamVolume(Stream.Music, (int)(myVol), 0);

            using (SoundPool soundPool = new SoundPool(1, Stream.Music, 0))
            {
                int soundFileId = soundPool.Load(soundFilePath, 1);

                soundPool.LoadComplete += (sender, eventArgs) =>
                {
                    using (SoundPool soundPoolLoaded = sender as SoundPool)
                    {
                      soundPoolLoaded.Play(soundFileId, myVol, 
                                          myVol, 0, 0, 1.0f);
                    }
                };
            }
        }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文