new: implement web audio player with support for js and wasmJs platforms
This commit is contained in:
@@ -1,23 +0,0 @@
|
||||
package fr.ajaury.gwenedeg.player
|
||||
|
||||
class JsAudioPlayer : AudioPlayer {
|
||||
override fun play() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun pause() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun stop() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun release() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun load(uri: String) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
}
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
package fr.ajaury.gwenedeg.player.di
|
||||
|
||||
import org.koin.core.module.Module
|
||||
|
||||
actual val audioPlayerModule: Module
|
||||
get() = TODO("Not yet implemented")
|
||||
@@ -1,23 +0,0 @@
|
||||
package fr.ajaury.gwenedeg.player
|
||||
|
||||
class WasmAudioPlayer : AudioPlayer {
|
||||
override fun play() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun pause() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun stop() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun release() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun load(uri: String) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
}
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
package fr.ajaury.gwenedeg.player.di
|
||||
|
||||
import org.koin.core.module.Module
|
||||
|
||||
actual val audioPlayerModule: Module
|
||||
get() = TODO("Not yet implemented")
|
||||
@@ -0,0 +1,32 @@
|
||||
package fr.ajaury.gwenedeg.player
|
||||
|
||||
import kotlinx.browser.document
|
||||
import org.w3c.dom.HTMLAudioElement
|
||||
|
||||
class WebAudioPlayer : AudioPlayer {
|
||||
private var audio: HTMLAudioElement? = null
|
||||
|
||||
override fun load(uri: String) {
|
||||
audio = (document.createElement("audio") as HTMLAudioElement).apply {
|
||||
src = uri
|
||||
}
|
||||
}
|
||||
|
||||
override fun play() {
|
||||
audio?.play()
|
||||
}
|
||||
|
||||
override fun pause() {
|
||||
audio?.pause()
|
||||
}
|
||||
|
||||
override fun stop() {
|
||||
audio?.pause()
|
||||
audio?.currentTime = 0.0
|
||||
}
|
||||
|
||||
override fun release() {
|
||||
audio?.pause()
|
||||
audio = null
|
||||
}
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package fr.ajaury.gwenedeg.player
|
||||
|
||||
class WebAudioSessionManager : AudioSessionManager {
|
||||
override fun activate() {
|
||||
}
|
||||
|
||||
override fun deactivate() {
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package fr.ajaury.gwenedeg.player.di
|
||||
|
||||
import fr.ajaury.gwenedeg.player.AudioPlayer
|
||||
import fr.ajaury.gwenedeg.player.AudioSessionManager
|
||||
import fr.ajaury.gwenedeg.player.WebAudioPlayer
|
||||
import fr.ajaury.gwenedeg.player.WebAudioSessionManager
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.dsl.module
|
||||
|
||||
actual val audioPlayerModule: Module = module {
|
||||
single<AudioPlayer> { WebAudioPlayer() }
|
||||
single<AudioSessionManager> { WebAudioSessionManager() }
|
||||
}
|
||||
Reference in New Issue
Block a user