【Kotlin】端末内の音楽でMediaPlayerをつくってみる
はじめに
前回端末内の音楽をListViewに表示してみました。見ていない方はこちらの記事を見てください。
今回はそれをつかって音楽を再生するMediaPlayerをつくってみたいと思います。
準備
今回は再生はListViewのアイテムを押したとき、停止はボタンで操作しようと思いますのでLayoutでボタンを配置します。ボタンの位置は適当でいいです。IDはstopButtonとしています。
クリックリスナーの作成
再生にはMediaPlayerをつかうのでMainActivityの上の方でインスタンスをつくります。MainActivity.kt
private val mp = MediaPlayer()
リスナーはOnCreate()内でつくります。
まず、ListViewのリスナーです。
MainActivity.kt
listView.setOnItemClickListener { parent, view, position, id -> //再生している曲を一旦停止 mp.pause() mp.seekTo(0) //押されたアイテムの情報を取得 val songTitle = view.findViewById<TextView>(R.id.titleText).text.toString() val songUri = view.findViewById<TextView>(R.id.uriText).text.toString() mp.reset() //曲をセット mp.setDataSource(songUri) mp.prepare() //曲を再生 mp.start() toast("Play: ${songTitle}") }
再生自体は、mp.start()でできますがそのまえにこれまで再生されている曲を停止します。
これをしないと連続でListViewを押したときアプリが停止します。
次に、停止ボタンのリスナーをつくります。
MainActivity.kt
stopButton.setOnClickListener { mp.pause() mp.seekTo(0) toast("Stop") }
まとめ
これだけです。簡単でしたが、これで終わります。
目覚ましなんかで使いたいときはintentをつかってURLを渡してくれば大丈夫です。
ではでは...