Fix record bug

It should not start recording when AV format not assigned.

Signed-off-by: Leo Ma <begeekmyfriend@gmail.com>
camera2
Leo Ma 9 years ago
parent 6cff148e3f
commit ad73ed4397

@ -6,7 +6,6 @@
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:glEsVersion="0x00020000" android:required="true" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" />
<application <application

@ -116,8 +116,9 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (btnRecord.getText().toString().contentEquals("record")) { if (btnRecord.getText().toString().contentEquals("record")) {
mPublisher.startRecord(recPath); if (mPublisher.startRecord(recPath)) {
btnRecord.setText("pause"); btnRecord.setText("pause");
}
} else if (btnRecord.getText().toString().contentEquals("pause")) { } else if (btnRecord.getText().toString().contentEquals("pause")) {
mPublisher.pauseRecord(); mPublisher.pauseRecord();
btnRecord.setText("resume"); btnRecord.setText("resume");

@ -112,7 +112,11 @@ public class SrsMp4Muxer {
/** /**
* start recording. * start recording.
*/ */
public void record(File outputFile) { public boolean record(File outputFile) {
if (videoFormat == null && audioFormat == null) {
return false;
}
mRecFile = outputFile; mRecFile = outputFile;
createMovie(mRecFile); createMovie(mRecFile);
mHandler.notifyRecordStarted(mRecFile.getPath()); mHandler.notifyRecordStarted(mRecFile.getPath());
@ -145,6 +149,8 @@ public class SrsMp4Muxer {
} }
}); });
worker.start(); worker.start();
return true;
} }
/** /**
@ -680,10 +686,12 @@ public class SrsMp4Muxer {
} }
public void addTrack(MediaFormat format, boolean isAudio) { public void addTrack(MediaFormat format, boolean isAudio) {
if (isAudio) { if (format != null) {
tracks.put(AUDIO_TRACK, new Track(tracks.size(), format, true)); if (isAudio) {
} else { tracks.put(AUDIO_TRACK, new Track(tracks.size(), format, true));
tracks.put(VIDEO_TRACK, new Track(tracks.size(), format, false)); } else {
tracks.put(VIDEO_TRACK, new Track(tracks.size(), format, false));
}
} }
} }

@ -121,10 +121,8 @@ public class SrsPublisher {
} }
} }
public void startRecord(String recPath) { public boolean startRecord(String recPath) {
if (mMp4Muxer != null) { return mMp4Muxer != null && mMp4Muxer.record(new File(recPath));
mMp4Muxer.record(new File(recPath));
}
} }
public void stopRecord() { public void stopRecord() {
@ -265,15 +263,6 @@ public class SrsPublisher {
} }
} }
public void switchMute() {
AudioManager audioManager = (AudioManager) mCameraView.getContext().getSystemService(Context.AUDIO_SERVICE);
int oldMode = audioManager.getMode();
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
boolean isMute = !audioManager.isMicrophoneMute();
audioManager.setMicrophoneMute(isMute);
audioManager.setMode(oldMode);
}
public void setRtmpHandler(RtmpHandler handler) { public void setRtmpHandler(RtmpHandler handler) {
mFlvMuxer = new SrsFlvMuxer(handler); mFlvMuxer = new SrsFlvMuxer(handler);
if (mEncoder != null) { if (mEncoder != null) {

Loading…
Cancel
Save