📄 playmedia.java
字号:
package util;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.media.control.VolumeControl;
import javax.microedition.rms.RecordStore;
import java.io.IOException;
import java.io.InputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
/**
* Created by IntelliJ IDEA.
* User: robai
* Date: 2007-2-26
* Time: 21:25:46
* To change this template use File | Settings | File Templates.
*/
public class PlayMedia {
public static String RECORD_STORE_NAME = "";
public void playTone() {
try {
Manager.playTone(60, 200, 90);
} catch (MediaException e) {
System.out.println(e);
}
}
public Player createPlayer(String url) throws Exception {
Player player = null;
try {
if (url.startsWith("http:"))
player = Manager.createPlayer(url);
else if (url.startsWith("resource")) {
int pathIndex = url.indexOf(":");
String path = url.substring(pathIndex + 1);
InputStream in = this.getClass().getResourceAsStream(path);
player = Manager.createPlayer(in, getSongType(url));
} else if (url.startsWith("rms:")) {
boolean created = false;
InputStream stream = null;
while (stream == null) {
try {
RecordStore rs = RecordStore.openRecordStore(RECORD_STORE_NAME, false);
byte[] adata = rs.getRecord(1);
rs.closeRecordStore();
stream = new ByteArrayInputStream(adata);
break; // exit while loop
} catch (Exception ex) {
// record store not found
}
if (created) {
// already tried to create record store!
throw new Exception("Could not create and open record store!");
}
created = true;
createMyRecordStore(url, RECORD_STORE_NAME);
}
String ctype = getSongType(url);
player = Manager.createPlayer(stream, ctype);
}
player.setLoopCount(1);
player.realize();
return player;
} catch (MediaException e) {
System.out.println(e);
} catch (IOException e) {
System.out.println(e);
} catch (Exception e) {
if (null != player) {
player.close();
player = null;
}
e.printStackTrace();
}
return null;
}
private String timeFM(long val) {
String ret = "";
int mval = (int) (val / 1000);
int sec = mval / 1000;
int min = sec / 60;
if (min >= 10)
ret = ret + min + ":";
else if (min > 0)
ret = "0" + min + ":";
else
ret = "00:";
if (sec >= 10)
ret = ret + sec + ".";
else if (sec > 0)
ret = ret + "0" + sec + ".";
else
ret = ret + "00.";
mval = (mval % 1000) / 100;
ret = ret + mval;
return (ret);
}
private String getSongType
(String
url) throws Exception {
if (url.endsWith("mpg") || url.endsWith("avi"))
return "video/mpeg";
else if (url.endsWith("wav"))
return "audio/x-wav";
else if (url.endsWith("jts"))
return "audio/x-tone-seq";
else if (url.endsWith("mid") || url.endsWith("kar"))
return "audio/midi";
else if (url.endsWith("amr"))
return "audio/amr";
else if (url.endsWith("awb"))
return "audio/amr-wb";
else if (url.endsWith("gif"))
return "image/gif";
else
throw new Exception("Cannot guess content type from URL: " + url);
}
private void createMyRecordStore
(String
url, String
name) {
try {
int idx = url.indexOf(':');
String loc = url.substring(idx + 1);
InputStream is = getClass().getResourceAsStream(loc);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] tmp = new byte[1024];
int nread;
while ((nread = is.read(tmp, 0, 1024)) > 0) {
baos.write(tmp, 0, nread);
}
byte[] data = baos.toByteArray();
is.close();
// create a RecordStore
RecordStore rs = RecordStore.openRecordStore(name, true);
rs.addRecord(data, 0, data.length);
rs.closeRecordStore();
System.out.println("created record store '" + name + "' with contents of " + loc);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -