package vendor.denso.audiopf.soundpool_track_player; import androidx.appcompat.app.AppCompatActivity; import android.media.AudioAttributes; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.SoundPool; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import java.io.IOException; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private final static String TAG = "SoundPool_Track_player"; private Button mediaPlayerButton; private Button soundPoolButton; private Button mediaPlayerMusicButton; private MediaPlayer mediaPlayer1 = null; private MediaPlayer mediaPlayer2 = null; private SoundPool mSoundPool; int sm; @Override protected void onCreate(Bundle savedInstanceState) { Log.d(TAG, "onCreate: "); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mediaPlayerButton = (Button) findViewById(R.id.media_player); soundPoolButton = (Button) findViewById(R.id.sound_pool); mediaPlayerMusicButton = (Button) findViewById(R.id.media_player_music); mediaPlayerButton.setOnClickListener(this); soundPoolButton.setOnClickListener(this); mediaPlayerMusicButton.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.media_player: Log.d(TAG, "onClick: media_player"); mediaPlayer2.start(); Log.d(TAG, "media_player: 开始播放"); break; case R.id.sound_pool: Log.d(TAG, "onClick: sound_pool"); soundPoolPlay(); break; case R.id.media_player_music: Log.d(TAG, "onClick: media_player_music"); mediaPlayer1.start(); Log.d(TAG, "mediaPlayerMusicPlay: 开始播放"); break; } } @Override protected void onStart() { super.onStart(); Log.d(TAG, "soundPoolPlay: 设置usage content"); AudioAttributes attributes = new AudioAttributes.Builder() .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) //CONTENT_TYPE_SONIFICATION .setUsage(AudioAttributes.USAGE_MEDIA) //USAGE_ASSISTANCE_SONIFICAION .build(); Log.d(TAG, "soundPoolPlay: 创建"); mSoundPool = new SoundPool.Builder() .setAudioAttributes(attributes) .setMaxStreams(5) .build(); sm= mSoundPool.load(this, R.raw.ringer, 1); mediaPlayerPlay(); mediaPlayerMusicPlay(); } public void mediaPlayerPlay(){ Log.d(TAG, "mediaPlayerPlay: 创建文件"); mediaPlayer2 = new MediaPlayer(); Log.d(TAG, "mediaPlayerPlay: 设置usage content"); AudioAttributes attributes = new AudioAttributes.Builder() .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) //CONTENT_TYPE_SONIFICATION .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION) //USAGE_ASSISTANCE_SONIFICAION .build(); mediaPlayer2.setAudioAttributes(attributes); try { String uriStr = "android.resource://" + this.getPackageName() + "/" + R.raw.music1; mediaPlayer2.setDataSource(this, Uri.parse(uriStr)); mediaPlayer2.prepare(); } catch (IOException e) { throw new RuntimeException(e); } } public void soundPoolPlay() { Log.d(TAG, "soundPoolPlay: 开始播放"); mSoundPool.play(sm, 1, 1, 1, 0, 1); } public void mediaPlayerMusicPlay(){ Log.d(TAG, "mediaPlayerMusicPlay: 创建文件"); Log.d(TAG, "mediaPlayerMusicPlay: 设置usage content"); mediaPlayer1 = new MediaPlayer(); AudioAttributes attributes = new AudioAttributes.Builder() .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) //CONTENT_TYPE_SONIFICATION .setUsage(AudioAttributes.USAGE_MEDIA) //USAGE_ASSISTANCE_SONIFICAION .build(); mediaPlayer1.setAudioAttributes(attributes); try { String uriStr = "android.resource://" + this.getPackageName() + "/" + R.raw.music1; mediaPlayer1.setDataSource(this, Uri.parse(uriStr)); mediaPlayer1.prepare(); } catch (IOException e) { throw new RuntimeException(e); } } }
mediaPlayer
最新推荐文章于 2024-07-25 19:59:08 发布