/******************************************************************************* * Created by Carlos Yaconi * Copyright 2015 Prey Inc. All rights reserved. * License: GPLv3 * Full license at "/LICENSE" ******************************************************************************/ package com.prey.actions; import android.content.Context; import android.media.AudioManager; import android.media.MediaPlayer; import com.prey.PreyLogger; import com.prey.R; import com.prey.actions.observer.ActionJob; public class Mp3PlayerAction extends PreyAction { public static final String DATA_ID = "alarm"; public final String ID = "alarm"; @Override public String textToNotifyUserOnEachReport(Context ctx) { return ""; } @Override public void execute(ActionJob actionJob, Context ctx) { MediaPlayer mp =null; try { final AudioManager audio = (AudioManager) ctx.getSystemService(Context.AUDIO_SERVICE); int max = audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC); final int setVolFlags = AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE | AudioManager.FLAG_VIBRATE; audio.setStreamVolume(AudioManager.STREAM_MUSIC, max, setVolFlags); mp = MediaPlayer.create(ctx, R.raw.siren); mp.start(); Mp3OnCompletionListener mp3Listener=new Mp3OnCompletionListener(); // i.e. react on the end of the music-file: mp.setOnCompletionListener(mp3Listener); Thread.sleep(30000); } catch (Exception e) { PreyLogger.e("Error" + e.getMessage(),e); }finally{ if(mp!=null) mp.stop(); } } @Override public boolean isSyncAction() { return false; } @Override public boolean shouldNotify() { return false; } public int getPriority(){ return ALARM_PRIORITY; } class Mp3OnCompletionListener implements MediaPlayer.OnCompletionListener{ public void onCompletion(MediaPlayer mp) { mp.release(); } } }