Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
I'm new to Kotlin and am trying to make a simple AudioManager (wrapping MediaPlayer).
I want the class to play the audio.
Here is my class:
package com.example.myappname
import android.media.MediaPlayer
interface AudioManagerInput {
fun startSound()
fun stopSound()
class AudioManager: AudioManagerInput {
// Instance variables
private var mediaPlayer: MediaPlayer? = null
// AudioManagerInput methods
override fun startSound() {
if (mediaPlayer == null) {
mediaPlayer = MediaPlayer()
mediaPlayer?.setDataSource("R.raw.songone") // ???
mediaPlayer?.start()
override fun stopSound() {
mediaPlayer?.stop()
I'm having issues setting the song.
I'm looking to load a local file R.raw.songone which is a .wav file sitting in res/raw.
How can I get a String to it's path?
I've scoured tutorials which hold other solutions to using MediaPlayer but have had issues with not knowing what to import, not being able to call create, or context not being found (whatever that is).
Modify class or it's method signature like this:
class AudioManager(private val context: Context): AudioManagerInput
Now we can pass context to MediaPlayer:
override fun startSound() {
if (mediaPlayer == null) {
mediaPlayer = MediaPlayer.create(context, R.raw.yourSound);
mediaPlayer?.start()
To init your AudioManager from an Activity:
var audioManager = AudioManager(this)
To manually access raw files: Read/write from res/raw by name.
–
–
–
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.