提交 d7fc0233 编写于 作者: jinlong0603's avatar jinlong0603

修复播放器断重复播放、停止 的请求动作导致程序崩溃的问题

上级 8b0b4cac
......@@ -119,7 +119,7 @@ public class AudioStream {
/**
* 编码
*/
private void startEncode() {
private synchronized void startEncode() {
mBuffers = mMediaCodec.getOutputBuffers();
mBuffer=null;
encodeThread = new Thread(new Runnable() {
......@@ -173,6 +173,10 @@ public class AudioStream {
e.printStackTrace(pw);
String stack = sw.toString();
Log.i(TAG, "record" + stack);
} finally {
if(stoped){
release();
}
}
}
}
......@@ -181,7 +185,7 @@ public class AudioStream {
}
public void startRecord() {
public synchronized void startRecord() {
try {
init();
mAudioRecord.startRecording();
......@@ -233,16 +237,15 @@ public class AudioStream {
packet[6] = (byte) 0xFC;
}
public void stop() {
public void release() {
try {
if (mThread != null) {
mThread.interrupt();
}
if (encodeThread != null) {
encodeThread.interrupt();
}
stoped = true;
if (mAudioRecord != null) {
mAudioRecord.stop();
mAudioRecord.release();
......@@ -258,6 +261,10 @@ public class AudioStream {
}
}
public void stop() {
stoped = true;
}
public int getAudioEncCodec(){
return mAudioEncCodec;
}
......
......@@ -176,7 +176,7 @@ public class MediaStream implements EasyIPCamera.IPCameraCallBack {
byte[] mPpsSps = new byte[0];
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
public synchronized void onPreviewFrame(byte[] data, Camera camera) {
if (data == null || !codecAvailable) {
mCamera.addCallbackBuffer(data);
return;
......@@ -262,6 +262,12 @@ public class MediaStream implements EasyIPCamera.IPCameraCallBack {
} finally {
mCamera.addCallbackBuffer(dst);
}
if(!codecAvailable){
mMediaCodec.stop();
mMediaCodec.release();
mMediaCodec = null;
}
}
};
......@@ -380,9 +386,9 @@ public class MediaStream implements EasyIPCamera.IPCameraCallBack {
private void stopMediaCodec() {
if (mMediaCodec != null) {
codecAvailable = false;
mMediaCodec.stop();
mMediaCodec.release();
mMediaCodec = null;
// mMediaCodec.stop();
// mMediaCodec.release();
// mMediaCodec = null;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册