Sound轻量级播放声音资源首选

网友投稿 259 2022-09-27

Sound轻量级播放声音资源首选

package com.enjoy.mediademo;import android.media.SoundPool;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.appcompat.app.AppCompatActivity;import androidx.recyclerview.widget.LinearLayoutManager;import androidx.recyclerview.widget.RecyclerView;import java.util.ArrayList;import java.util.List;public class SoundActivity extends AppCompatActivity implements MyAdapter.OnItemClickListener { private SoundPool soundPool; static class Sound { String name; int soundId; public Sound(String name, int soundId) { this.name = name; this.soundId = soundId; } public int getSoundId() { return soundId; } public String getName() { return name; } } List data; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sound); RecyclerView recyclerView = findViewById(R.id.recyclerView); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.setLayoutManager(linearLayoutManager); soundPool = new SoundPool.Builder().setMaxStreams(6).build(); data = new ArrayList<>(); data.add(new Sound("a4", soundPool.load(this, R.raw.a4, 1))); data.add(new Sound("a5", soundPool.load(this, R.raw.a5, 1))); data.add(new Sound("a6", soundPool.load(this, R.raw.a6, 1))); data.add(new Sound("a7", soundPool.load(this, R.raw.a7, 1))); data.add(new Sound("a8", soundPool.load(this, R.raw.a8, 1))); data.add(new Sound("a9", soundPool.load(this, R.raw.a9, 1))); MyAdapter myAdapter = new MyAdapter(data, recyclerView, this); myAdapter.setOnItemClickListener(this); recyclerView.setAdapter(myAdapter); } @Override public void onItemClick(int position) { Sound sound = data.get(position); soundPool.play(sound.getSoundId(), 1.0f, 1.0f, 1, 0, 1.0f); } @Override protected void onDestroy() { super.onDestroy(); for (Sound datum : data) { soundPool.unload(datum.getSoundId()); } soundPool.release(); }}

layout

android:layout_width="match_parent" android:layout_height="match_parent"> android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" />

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Azure Virtual Desktop 快速上手--托管网络快速创建P2S连接用于测试
下一篇:MyBatisPlus利用Service实现获取数据列表
相关文章

 发表评论

暂时没有评论,来抢沙发吧~