api: add module media

This commit is contained in:
hyb1996 2018-02-27 11:27:37 +08:00
parent ab121f23c3
commit 37e4ebc91e
4 changed files with 22 additions and 4 deletions

View File

@ -80,7 +80,7 @@ require("__globals__")(__runtime__, this);
(function(scope){
var modules = ['app', 'automator', 'console', 'dialogs', 'io', 'selector', 'shell', 'web', 'ui',
"images", "timers", "threads", "events", "engines", "RootAutomator", "http", "storages", "floaty",
"sensors"];
"sensors", "media"];
var len = modules.length;
for(var i = 0; i < len; i++) {
var m = modules[i];

View File

@ -0,0 +1,3 @@
module.exports = function(runtime, global){
return Object.create(runtime.media);
}

View File

@ -21,6 +21,7 @@ import com.stardust.autojs.runtime.api.Events;
import com.stardust.autojs.runtime.api.Files;
import com.stardust.autojs.runtime.api.Floaty;
import com.stardust.autojs.core.looper.Loopers;
import com.stardust.autojs.runtime.api.Media;
import com.stardust.autojs.runtime.api.Sensors;
import com.stardust.autojs.runtime.api.Threads;
import com.stardust.autojs.runtime.api.Timers;
@ -175,6 +176,8 @@ public class ScriptRuntime {
@ScriptVariable
public Sensors sensors;
@ScriptVariable
public final Media media;
private Images images;
@ -205,6 +208,7 @@ public class ScriptRuntime {
device = new Device(context);
floaty = new Floaty(uiHandler, ui, this);
files = new Files(this);
media = new Media(context);
}
public void init() {
@ -366,6 +370,7 @@ public class ScriptRuntime {
}
ignoresException(threads::shutDownAll);
ignoresException(events::recycle);
ignoresException(media::recycle);
ignoresException(loopers::recycle);
ignoresException(() -> {
if (mRootShell != null) mRootShell.exitAndWaitFor();

View File

@ -21,9 +21,10 @@ public class Media implements MediaScannerConnection.MediaScannerConnectionClien
public Media(Context context) {
mScannerConnection = new MediaScannerConnection(context, this);
mScannerConnection.connect();
}
public void scan(String path) {
public void scanFile(String path) {
String mimeType = MimeTypes.fromFileOr(path, null);
mScannerConnection.scanFile(path, mimeType);
}
@ -33,6 +34,14 @@ public class Media implements MediaScannerConnection.MediaScannerConnectionClien
}
public void playMusic(String path, float volume) {
playMusic(path, volume, false);
}
public void playMusic(String path) {
playMusic(path, 1.0f);
}
public void playMusic(String path, float volume, boolean looping) {
if (mMediaPlayer == null) {
mMediaPlayer = new MediaPlayerWrapper();
@ -40,11 +49,12 @@ public class Media implements MediaScannerConnection.MediaScannerConnectionClien
mMediaPlayer.stopAndReset();
try {
mMediaPlayer.setDataSource(path);
mMediaPlayer.setVolume(volume, volume);
mMediaPlayer.setLooping(looping);
mMediaPlayer.prepare();
} catch (IOException e) {
throw new UncheckedIOException(e);
}
mMediaPlayer.setVolume(volume, volume);
mMediaPlayer.setLooping(looping);
mMediaPlayer.start();
}