3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MediaPlayerを使用してURLから音声を再生する方法

Posted at

はじめに

最近音声を再生する機会が多く、都度調べている気がしますので、簡単にまとめておこうと思います。

再生方法

まず、メンバ変数として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の機能をもう少し詳細にまとめたいと思います。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?