はじめに
最近音声を再生する機会が多く、都度調べている気がしますので、簡単にまとめておこうと思います。
再生方法
まず、メンバ変数としてMediaPlayerを初期化しておきます。
private val mediaPlayer = MediaPlayer()
次に、MediaPlayerに再生したいURLと再生に伴う設定を行います。
setDataSource(url)
setAudioAttributes(
AudioAttributes
.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.setUsage(AudioAttributes.USAGE_MEDIA)
.build()
)
上記で再生する為の設定は完了です。
簡単に呼び出している関数を解説します。
setDataSource
この関数に再生したいURLを設定します、他にもAssetFileDescriptorやMediaDataSourceにも対応しているので、さまざまなパターンでの再生が可能なようです。
setContentType
この関数は名称の通り、再生するコンテンツの種類を設定します。
ContentTypeの種類に関しては、以下を参照してみてください。
https://developer.android.com/reference/android/media/AudioAttributes.Builder#setContentType(int)
setUsage
この関数はsetContentTypeと似ていますが、使用目的に当てはまるものをを設定します。
Usageの種類に関しては、以下を参照してみてください。
https://developer.android.com/reference/android/media/AudioAttributes.Builder#setUsage(int)
設定は以上になります。
あとは、以下のようにprepare関数とstart関数を呼び出すだけです。
prepare()
start()
おまけ
MediaPlayerは画面が破棄されたタイミングで開放してあげないとメモリーリークしますので、以下に記述されているように破棄してあげると良いかと思います。
さいごに
URLをAPIから受け取って再生というのがよくある実装かと思いますが、MediaPlayerを使用するだけで比較的簡単に実装が可能です。
今回はメモ程度に触れましたが、どこかで時間が作れたらMediaPlayerの機能をもう少し詳細にまとめたいと思います。