萤火虫 发表于 2018-12-28 14:19:04

AIO3128播放声音出现问题

声音时有时无,包括系统提示音和音乐。,外接USB声卡播放正常。
不管是外接声卡还是直接使用板载的音频接口都会出现使用soundpool 出现AUDIO_OUTPUT_FLAG_FAST denied by client警告的问题。
请问该如何解决?

测试代码:

package com.haijie.test;

import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity {

    //audio
    public static SoundPool soundPool;
    public static HashMap<String, Integer> sounddata;
    public static Boolean isLoaded;
    private static int streamID = -1;

    public static void playSound(Context context, String sound, int number) {
      AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
      float audioMaxVolumn = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
      float volumnCurrent = am.getStreamVolume(AudioManager.STREAM_MUSIC);
      float volumnRatio = volumnCurrent / audioMaxVolumn;

      streamID = soundPool.play(sounddata.get(sound),
                volumnRatio,// 左声道音量
                volumnRatio,// 右声道音量
                1, // 优先级
                number,// 循环播放次数
                1);// 回放速度,该值在0.5-2.0之间 1为正常速度
    }

    public static void stopSound(){
      soundPool.stop(streamID);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      initAudio();

      Button button = findViewById(R.id.button);
      button.setOnClickListener(new Button.OnClickListener(){
            @Override
            public void onClick(View v) {
                if (isLoaded){
                  if (streamID != -1){
                        stopSound();
                  }
                  playSound(MainActivity.this,"finger",0);
                }
            }
      });
    }

    private void initAudio(){
      soundPool = new SoundPool.Builder().setMaxStreams(5).build();
      sounddata = new HashMap<>();
      sounddata.put("open", soundPool.load(this, R.raw.open, 1));
      sounddata.put("close", soundPool.load(this, R.raw.close, 1));
      sounddata.put("face", soundPool.load(this, R.raw.face, 1));
      sounddata.put("finger", soundPool.load(this, R.raw.finger, 1));
      sounddata.put("ic", soundPool.load(this, R.raw.ic, 1));
      isLoaded = false;
      soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener(){
            @Override
            public void onLoadComplete(SoundPool sound,int sampleId,int status){
                if (sampleId == sounddata.size())
                  isLoaded = true;
            }
      });
    }

}提示:




萤火虫 发表于 2018-12-28 15:32:44

有木有大佬解决下啊?

萤火虫 发表于 2018-12-28 15:47:58


有木有大佬解决下啊?

萤火虫 发表于 2018-12-28 16:10:35

有木有大佬解决下啊?

萤火虫 发表于 2018-12-28 17:21:58

有木有大佬解决下啊?

wx_Mr.Lee_g8Ao8 发表于 2018-12-29 09:58:20

萤火虫 发表于 2018-12-28 17:21
有木有大佬解决下啊?

声音时有时无,包括系统提示音和音乐。
说明一下操作步骤

wx_Mr.Lee_g8Ao8 发表于 2018-12-29 10:11:41

wx_Mr.Lee_g8Ao8 发表于 2018-12-29 09:58
说明一下操作步骤

还有是用耳机还是喇叭

wx_Mr.Lee_g8Ao8 发表于 2018-12-29 10:20:23

现在官网SDK有更新,可以更新源码再试试

萤火虫 发表于 2018-12-29 10:53:51

wx_Mr.Lee_g8Ao8 发表于 2018-12-29 09:58
说明一下操作步骤

就是直接播放MP3格式的文件,放着放着突然没有声音了就。触摸时的提示音也有的时候有,有的时候没有。

wx_Mr.Lee_g8Ao8 发表于 2018-12-29 10:58:09

萤火虫 发表于 2018-12-29 10:53
就是直接播放MP3格式的文件,放着放着突然没有声音了就。触摸时的提示音也有的时候有,有的时候没有。

更新最新源码
页: [1] 2 3
查看完整版本: AIO3128播放声音出现问题