📄 tapimediaterminalconnection.java
字号:
/*
* JTAPI library copyright 1998 by Web4Groups consortium (http://Web4Groups.at)
*/
import java.telephony.*;
import java.telephony.capabilities.*;
import java.telephony.events.*;
import java.telephony.media.*;
import java.net.*;
import java.io.*;
class TAPIMediaTerminalConnection extends TAPITerminalConnection implements MediaTerminalConnection {
/* defined in TAPITerminalConnection:
int state = IDLE;
Call call;
TAPITerminal terminal;
TAPIConnection connection;
int line; //represents the line device identifier in TAPI
*****************************************/
private int mav_state = AVAILABLE;
private int m_state = 0;
private native void TAPIDtmfDetection(boolean enable, int line);
private native void TAPIPlay(int line);
private native void TAPIRecord(int line);
private native void TAPIStopPlay(int line);
private native void TAPIStopRecord(int line);
private native void TAPIUseURL(String url, int line);
TAPIMediaTerminalConnection(Call call, TAPITerminal terminal, TAPIConnection connection, int line) {
this.call = call;
this.terminal = terminal;
this.connection = connection;
this.line = line;
}
/* implementation specific */
void sendFax(String destination, String fileName) {
HylafaxClient client = new HylafaxClient("harare.kapsch.co.at", 9756, "sendfax", destination, fileName);
client.send();
}
void faxMail(String destination, String fileName) {
HylafaxClient client = new HylafaxClient("harare.kapsch.co.at", 9756, "faxmail", destination, fileName);
client.send();
}
/* end implementation specific */
public int getMediaAvailability() {
return mav_state;
}
public int getMediaState() {
return m_state;
}
public void useDefaultSpeaker() {
}
public void useRecordURL(URL url) {
String str = url.getFile();
TAPIUseURL(str, line);
}
public void usePlayURL(URL url) {
if (url.getProtocol().equals("file")) {
String str = url.getFile();
TAPIUseURL(str, line);
}
else {
try {
InputStream is = url.openStream();
String fName = "tmp.wav";
File file = new File(fName);
FileOutputStream out = new FileOutputStream(file);
byte buf[] = new byte[0xffff];
int i;
do {
i = is.read(buf);
if (i > 0)
out.write(buf, 0, i);
} while(i != -1);
is.close();
out.close();
TAPIUseURL("/" + fName, line);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
public void useDefaultMicrophone() {
}
public void startPlaying() {
m_state = PLAYING;
TAPIPlay(line);
m_state = 0;
}
public void stopPlaying() {
TAPIStopPlay(line);
m_state = 0;
}
public void startRecording() {
TAPIRecord(line);
m_state = RECORDING;
}
public void stopRecording() {
TAPIStopRecord(line);
m_state = 0;
}
public void setDtmfDetection(boolean enable) {
TAPIDtmfDetection(enable, line);
}
public void generateDtmf(String digits) {
}
static {
System.loadLibrary("KapschProvider");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -