前提・実現したいこと
アプリ開発初心者です。
現在Android用アプリを作成しており、ボタンがタップされた際に効果音が鳴るようにしています。
ただ、AndroidStudio内のエミュレーター・実機のどちらでも音声ファイルを通常再生したときとは異なる音が鳴ってしまいます。
発生している問題・エラーメッセージ
エラーは起きていないのでエラーメッセージはありません。 ボタンをタップすると音が鳴ることにはなるのですが、指定しているファイル(ファイル名:tapstart.wav)をかなり早送りしたような音になっています。 通常の速度で再生するにはどうしたらいいでしょうか。
該当のソースコード
Kotolin
1class MainActivity : AppCompatActivity() { 2 //↓効果音用// 3 private lateinit var soundPool: SoundPool 4 private var soundResId = 0 5 //↑効果音用// 6 private lateinit var binding: ActivityMainBinding 7 override fun onCreate(savedInstanceState: Bundle?) { 8 super.onCreate(savedInstanceState) 9 binding = ActivityMainBinding.inflate(layoutInflater) 10 setContentView(binding.root) 11 12 binding.StartButton.setOnClickListener{onStartButtonTapped(it)} 13 14 } 15 fun onStartButtonTapped(view: View?){ 16 val intent = Intent(this, SelectActivity::class.java) 17 startActivity(intent) 18 19 //↓効果音用// 20 soundPool.play(soundResId, 1.0f, 100f, 1, 0, 1.0f) 21 //↑効果音用// 22 23 overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out) 24 } 25 //↓効果音用// 26 override fun onResume() { 27 super.onResume() 28 soundPool = 29 SoundPool.Builder().run { 30 val audioAttributes = AudioAttributes.Builder().run { 31 setUsage(AudioAttributes.USAGE_GAME) 32 build() 33 } 34 setMaxStreams(1) 35 setAudioAttributes(audioAttributes) 36 build() 37 } 38 soundResId = soundPool.load(this, R.raw.tapstart, 1) 39 } 40 41 override fun onPause() { 42 super.onPause() 43 soundPool.release() 44 } 45 //↑効果音用// 46}
試したこと
・playメソッドの再生速度を2.0に変えてみる
→特に変わらない結果でした。
・mp3ファイルでも試してみる
→特に変わらない結果でした。
・別の音声ファイルで試してみる。
→音の高低が変わっているのでファイル自体は変更出来ていると思われるものの、こちらも早送りされたような音でした。
補足情報(FW/ツールのバージョンなど)
・AndroidStudio内のエミュレーター
Pixle2 API30
・検証に用いている実機
KYOSERA S4-KC
あなたの回答
tips
プレビュー