마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

soundpool 소리크기

0 추천

소리의 크기를 최대로 설정해도 너무 작게 들리는 현상이 일어납니다 무엇이 문제인지 모르겠습니다 ㅠㅠ

고수님들의 많은 의견 부탁드립니다.

package com.example.helloworld;

import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Build;
import android.os.Bundle;
import android.view.View;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
private SoundPool soundpool;
private int sound5, sound6;

        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
            AudioAttributes audioAttributes = new AudioAttributes.Builder()
                    .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
                    .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                    .build();
            soundpool = new SoundPool.Builder()
                    .setMaxStreams(2)
                    .setAudioAttributes(audioAttributes)
                    .build();


        } else {
            soundpool = new SoundPool(2, AudioManager.STREAM_MUSIC, 0);
        }

        sound5 = soundpool.load(this, R.raw.sound5,1);
        sound6 = soundpool.load(this, R.raw.sound6,1);
        soundpool.setVolume(sound5,1.0f,1.0f);
        soundpool.setVolume(sound6,1.0f,1.0f);
    }


    public void playSound(View v){
        switch (v.getId()){
            case R.id.button_sound5:
                soundpool. play(sound5,1.0f,1.0f,0,0,1);
                break;
            case R.id.button_sound6:
                soundpool. play(sound6,1.0f,1.0f,0,0,1);
                break;
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        soundpool.release();
        soundpool = null;
    }
}

MuHan (120 포인트) 님이 2019년 9월 4일 질문

1개의 답변

0 추천
코드는 딱히 문제가 안보이는데. 롤리팝 이후 버젼은 STREAM_ACCESSIBILITY 를 이전 버젼은 STREAM_MUSIC 으로 출력하게 구현하시는 듯 한데. , 출력시키는 스트림의  볼륨 레벨이 낮아 작게 들리는게 아닐까 합니다.

롤리팝 이상 버젼에서 돌리는 거라면, 아래와 같이 STREAM_ACCESSIBILITY 값을 최대로 키워 재생 해 보세요.(이전 버젼은 STREAM_ACCESSIBILITY 대신 STREAM_MUSIC로 바꾸시면 됩니다.)

AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int streamMaxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ACCESSIBILITY);
audioManager.setStreamVolume(AudioManager.STREAM_ACCESSIBILITY, streamMaxVolume);
익명사용자 님이 2019년 9월 4일 답변
...