kotlinでMediaPlayer
javaでいうMediaPlayerがkotlinにもないのかなと思いインターネットの大海を探してみたがそれらしいものがなかった。 もしかしてそのまま使えるんじゃないかと思い書いてみたらコンパイルが通った。
使い方
javaの書き方と同じでこんな感じ
class MainActivity : AppCompatActivty{ // ここでcreateするとアプリ起動時に落ちる var a : MediaPlayer = MediaPlayer() override fun onCreate(savedInstanceState: Bundle?){ ... // 再生する a.seekTo(0) a.start() } override fun onResume(){ ... // 引数の2つ目で再生したいファイルのidを書く a = MediaPlayer.create(this, R.raw.id) ... } override fun onPause(){ ... // ここで解放しないとメモリに残る a.release() ... } }
Javaと同じように書くから誰も大海に残さなかったんだろうなぁと。 kotlin使いだしてから1週間くらいしか経ってないし、英語の記事読むのつらいから気づくまでに時間がかかった。
追記
javaのMediaPlayerだとwavファイルの再生がおかしくなるみたいだけど、kotlinでは問題なく使えるっぽい。(Xperia Z4で検証)
kotlinでボタン押下時の挙動を書く
kotlinでボタン押下時の挙動を書く。書き方として何パターンかある。 自分が試したのは以下の2パターン。
パターン1
setOnClickListener内に直接書く
var button : Button = R.id.id as Button button.setOnClickListener{ view -> ... }
パターン2
onClickメソッドを使う。
.... override fun onCreate(savedInstanceState: Bundle?) { .... var onBtn : Button = findViewById(R.id.id) as Button onBtn.setOnClickListener(this) } override fun onClick(v: View?){ .... }
パターン2の時はView.onClickListenerをオーバーライドするのを忘れずに
あとがき
kotlin使うのが楽しくなってきた。 自分にデザインセンスがあったら何か作って公開したいなぁ…。
kotlinですごい簡単なアプリを作ろうとしたのにつまづいた
やったこと
kotlinの勉強も兼ねてボタンを押したときに表示するメッセージ変えるだけの簡単なアプリを作った。
つまづいた
val Btn = findViewById(R.id.button) as Button Btn.setOnClickListener{ v -> ..... }
のsetOnClickListenerの部分にunresolved reference setOnClickListener
が出た。
原因
java.awt.Button
を間違えてインポートしてしまっていた。
android.widget.Button
に変えて解決。
おわりに
まさかの単純なミス。 これに1日気づかずに悩み続けてたなんて…。
Android Studio3.0 Canary3入れた
入れる
Android Studio プレビューを入手する | Android Studio
ここでzipファイルをダウンロード
ダウンロードしたzipファイルを解凍して出てくるandroid-studioを好きなディレクトリに置く。
(解凍先ディレクトリ)/android-studio/bin/studio.exe でandroid studioが起動。
おわり
最後に
自分がここまでスーツが嫌いだとは思わなかった....