MediaPlayer
MediaPlayer
media.MediaPlayer
Audio / media playback helper around Android’s MediaPlayer: play, pause, seek, looping, volume, and completion.
Example
"nodejs";
const { MediaPlayer } = require("media");
const player = new MediaPlayer();
player.play("/sdcard/Music/test.mp3");
setInterval(() => {
console.log(player.currentPosition);
}, 1000);See also
https://developer.android.com/reference/android/media/MediaPlayer
Table of contents
Constructors
Accessors
Methods
- awaitForCompletion
- pause
- play
- prepare
- prepareSync
- release
- reset
- seekTo
- setDataSource
- setLooping
- setScreenOnWhilePlaying
- setVolume
- start
- stop
Constructors
constructor
• new MediaPlayer()
Accessors
androidMediaPlayer
• get androidMediaPlayer(): MediaPlayer
The underlying Android android.media.MediaPlayer instance.
See also
https://developer.android.com/reference/android/media/MediaPlayer
Returns
MediaPlayer
currentPosition
• get currentPosition(): number
Current playback position in milliseconds.
See also
https://developer.android.com/reference/android/media/MediaPlayer#getCurrentPosition()
Returns
number
duration
• get duration(): number
Total duration in milliseconds.
See also
https://developer.android.com/reference/android/media/MediaPlayer#getDuration()
Returns
number
isPlaying
• get isPlaying(): boolean
Whether playback is currently active.
See also
https://developer.android.com/reference/android/media/MediaPlayer#isPlaying()
Returns
boolean
Methods
awaitForCompletion
▸ awaitForCompletion(): Promise<void>
Resolves when playback finishes (completion listener).
See also
Returns
Promise<void>
pause
▸ pause(): void
Pause playback.
See also
https://developer.android.com/reference/android/media/MediaPlayer#pause()
Returns
void
play
▸ play(uri, volume?, looping?): Promise<void>
Start playback from uri. In an async function you can await this promise to wait until playback completes.
Parameters
| Name | Type | Description |
|---|---|---|
uri | string | Local file path or remote URL. |
volume? | number | Volume 0…1; default 1. |
looping? | boolean | If true, loop; default false. |
Returns
Promise<void>
prepare
▸ prepare(): Promise<void>
Prepare the player after you set a data source manually. You must call prepare() or prepareSync() before start() so the media can be buffered or downloaded.
If you only use play(uri), you do not need this—play prepares internally.
Example
"nodejs";
const { MediaPlayer } = require("media");
async function main() {
const player = new MediaPlayer();
player.setDataSource("https://www.example.com/test.mp3");
await player.prepare();
player.start();
await player.awaitForCompletion();
}
main();See also
https://developer.android.com/reference/android/media/MediaPlayer#prepareAsync()
Returns
Promise<void>
prepareSync
▸ prepareSync(): void
Synchronous prepare. Same contract as prepare() but blocks until ready.
If you only use play(uri), you do not need this.
Example
"nodejs";
const { MediaPlayer } = require("media");
const player = new MediaPlayer();
player.setDataSource("/sdcard/Music/test.mp3");
player.prepareSync();
player.start();
$autojs.keepRunning();See also
https://developer.android.com/reference/android/media/MediaPlayer#prepare()
Returns
void
release
▸ release(): void
Release native resources held by this player. Call release() as soon as you no longer need the instance—especially when your UI goes to the background—unless you intentionally keep it alive.
Delaying release() wastes memory / codec slots and can keep the device awake.
See also
https://developer.android.com/reference/android/media/MediaPlayer#release()
Returns
void
reset
▸ reset(): void
Reset the player to an idle state.
See also
https://developer.android.com/reference/android/media/MediaPlayer#reset()
Returns
void
seekTo
▸ seekTo(msec): Promise<void>
Seek to msec milliseconds.
See also
https://developer.android.com/reference/android/media/MediaPlayer#seekTo(int)
Parameters
| Name | Type | Description |
|---|---|---|
msec | number | Target time in ms. |
Returns
Promise<void>
setDataSource
▸ setDataSource(path): void
Set the media source (local path or http(s) URL).
See also
https://developer.android.com/reference/android/media/MediaPlayer#setDataSource(java.lang.String)
Parameters
| Name | Type | Description |
|---|---|---|
path | string | e.g. /sdcard/test.mp3 or a URL. |
Returns
void
setLooping
▸ setLooping(looping): void
Enable or disable looping.
See also
https://developer.android.com/reference/android/media/MediaPlayer#setLooping(boolean)
Parameters
| Name | Type | Description |
|---|---|---|
looping | boolean | true to loop. |
Returns
void
setScreenOnWhilePlaying
▸ setScreenOnWhilePlaying(keep): void
Keep the screen on while playing.
See also
https://developer.android.com/reference/android/media/MediaPlayer#setScreenOnWhilePlaying(boolean)
Parameters
| Name | Type | Description |
|---|---|---|
keep | boolean | true to keep on. |
Returns
void
setVolume
▸ setVolume(leftVolume, rightVolume?): void
Set stereo volume levels.
See also
https://developer.android.com/reference/android/media/MediaPlayer#setVolume(float, float)
Parameters
| Name | Type | Description |
|---|---|---|
leftVolume | number | Left channel 0…1. |
rightVolume? | number | Right channel 0…1; defaults to left. |
Returns
void
start
▸ start(): void
Start or resume playback after prepare.
See also
https://developer.android.com/reference/android/media/MediaPlayer#start()
Returns
void
stop
▸ stop(): void
Stop playback.
See also
https://developer.android.com/reference/android/media/MediaPlayer#stop()
Returns
void
