From 2d23bdec56921a43e979d0b7319bc577737e50bd Mon Sep 17 00:00:00 2001 From: amazing-username Date: Fri, 1 Mar 2019 22:48:18 -0500 Subject: [PATCH] Able to play and pause a songs --- app/src/main/AndroidManifest.xml | 2 + .../java/com/example/mear/MainActivity.kt | 57 +++++++++++++++- .../com/example/mear/management/MusicFiles.kt | 65 +++++++++++++++++++ .../java/com/example/mear/models/Track.kt | 5 ++ 4 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/example/mear/management/MusicFiles.kt create mode 100644 app/src/main/java/com/example/mear/models/Track.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 21a63e0..95f7c83 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,4 +21,6 @@ + + \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/MainActivity.kt b/app/src/main/java/com/example/mear/MainActivity.kt index 2380c73..18c1fc8 100644 --- a/app/src/main/java/com/example/mear/MainActivity.kt +++ b/app/src/main/java/com/example/mear/MainActivity.kt @@ -9,8 +9,13 @@ import android.support.v7.app.AppCompatActivity; import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.content_main.* import java.io.File +import java.lang.Exception +import java.nio.file.Files import kotlin.io.* +import com.example.mear.management.MusicFiles +import kotlin.random.Random + class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -18,6 +23,8 @@ class MainActivity : AppCompatActivity() { setContentView(R.layout.activity_main) setSupportActionBar(toolbar) + loadSongs() + initializeMediaPlayer() PlayTrack.setOnClickListener { @@ -29,19 +36,63 @@ class MainActivity : AppCompatActivity() { fun configureSongs() { } + fun configureDemoSong() { + val sdC = "sdcard0/" + var musicPath = "music/" + var artistPath = "Flueric/" + var albumPath = "New Death of a Phoenix/" + var songPath = "Qualm.mp3" + val pa = demoPath!!.absoluteFile.toString() + "/" + musicPath + artistPath + albumPath + + songPath + try { + var fl = File(pa) + if (fl.exists()) { + TrackPayer!!.setDataSource(pa) + } + } + catch (ex: Exception) { + var exMsg = ex.message + } + } + fun initializeMediaPlayer() { if (TrackPayer == null) { TrackPayer = MediaPlayer() + playerInitialized = true + TrackPayer!!.setDataSource(allSongs!![currentSong!!]) + TrackPayer!!.prepare() } - File("/").walkTopDown().forEach { print(it) } } fun playSongTrack() { + try { + if (!TrackPayer!!.isPlaying) { + TrackPayer!!.start() + var musicData = TrackPayer!!.trackInfo + println("ss") + } else { + TrackPayer!!.pause() + } + } + catch (ex: Exception) { + val exMsg = ex.message + } } - var TrackPayer: MediaPlayer? = null - var sysPath = Environment.getRootDirectory() + private fun loadSongs() { + val mfPaths = MusicFiles(this.demoPath!!) + mfPaths.loadAllMusicPaths() + allSongs = mfPaths.allSongs + val songIndex = Random.nextInt(0, allSongs!!.size - 1) + currentSong = songIndex + } + + private var TrackPayer: MediaPlayer? = null + private var demoPath: File? = Environment .getExternalStorageDirectory() + private var allSongs: MutableList? = null + private var currentSong: Int? = null + private var playerInitialized: Boolean? = null } diff --git a/app/src/main/java/com/example/mear/management/MusicFiles.kt b/app/src/main/java/com/example/mear/management/MusicFiles.kt new file mode 100644 index 0000000..4c73768 --- /dev/null +++ b/app/src/main/java/com/example/mear/management/MusicFiles.kt @@ -0,0 +1,65 @@ +package com.example.mear.management + +import android.os.Environment +import java.io.File +import java.lang.Exception +import kotlin.io.* + +class MusicFiles (val demoPath: File) { + + + fun loadAllMusicPaths() { + try { + allSongs = mutableListOf() + val demoPath = this.demoPath.absoluteFile.toString() +"/music/" + val f = File(demoPath) + var count = 0 + + val folder = f + val listOfFiles = folder.listFiles() + + for (i in listOfFiles) { + for (j in i.listFiles()) { + if (j.absolutePath.toString().contains("zip")) { + println("zip file") + } + for (k in j.listFiles()) { + println("What's good?") + if (k.absolutePath.toString().contains("mp3")) { + allSongs!!.add(k.absolutePath.toString()) + count++ + } + else { + println("Stranger") + } + } + } + } + songCount = count + } + catch (ex: Exception) { + var exMsg = ex.message + } + } + fun configureDemoSong() { + val sdC = "sdcard0/" + var musicPath = "music/" + var artistPath = "Flueric/" + var albumPath = "New Death of a Phoenix/" + var songPath = "Qualm.mp3" + val pa = demoPath.absoluteFile.toString() + "/" + musicPath + artistPath + albumPath + + songPath + try { + var fl = File(pa) + if (fl.exists()) { + } + } + catch (ex: Exception) { + var exMsg = ex.message + } + } + + + var allSongs: MutableList?= null + var songCount: Int? = null +} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/models/Track.kt b/app/src/main/java/com/example/mear/models/Track.kt new file mode 100644 index 0000000..e3446d9 --- /dev/null +++ b/app/src/main/java/com/example/mear/models/Track.kt @@ -0,0 +1,5 @@ +package com.example.mear.models + +class Track (val id: Int, val title: String, val artist: String, val album: String, + val TrackCover: ByteArray) { +} \ No newline at end of file