mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-11 09:05:38 +00:00
[Android] Start recording immediately after asking for permission
This commit is contained in:
parent
9379fe1399
commit
a42f5234c5
@ -34,18 +34,27 @@ AndroidAudioState *AndroidAudio_Init(AndroidAudioCallback callback, int optimalF
|
||||
return state;
|
||||
}
|
||||
|
||||
bool AndroidAudio_Recording_Start(AndroidAudioState *state, int sampleRate) {
|
||||
bool AndroidAudio_Recording_SetSampleRate(AndroidAudioState *state, int sampleRate) {
|
||||
if (!state) {
|
||||
ERROR_LOG(AUDIO, "AndroidAudioState not initialized, cannot set recording sample rate");
|
||||
return false;
|
||||
}
|
||||
state->input_sample_rate = sampleRate;
|
||||
INFO_LOG(AUDIO, "AndroidAudio_Recording_SetSampleRate");
|
||||
return true;
|
||||
}
|
||||
|
||||
bool AndroidAudio_Recording_Start(AndroidAudioState *state) {
|
||||
if (!state) {
|
||||
ERROR_LOG(AUDIO, "AndroidAudioState not initialized, cannot start recording!");
|
||||
return false;
|
||||
}
|
||||
state->input_enable = 1;
|
||||
if (!state->ctx) {
|
||||
ERROR_LOG(AUDIO, "OpenSLContext not initialized, cannot start recording!");
|
||||
return false;
|
||||
}
|
||||
state->input_enable = 1;
|
||||
state->input_sample_rate = sampleRate;
|
||||
state->ctx->AudioRecord_Start(sampleRate);
|
||||
state->ctx->AudioRecord_Start(state->input_sample_rate);
|
||||
INFO_LOG(AUDIO, "AndroidAudio_Recording_Start");
|
||||
return true;
|
||||
}
|
||||
|
@ -23,7 +23,8 @@ struct AndroidAudioState;
|
||||
|
||||
// It's okay for optimalFramesPerBuffer and optimalSampleRate to be 0. Defaults will be used.
|
||||
AndroidAudioState *AndroidAudio_Init(AndroidAudioCallback cb, int optimalFramesPerBuffer, int optimalSampleRate);
|
||||
bool AndroidAudio_Recording_Start(AndroidAudioState *state, int sampleRate);
|
||||
bool AndroidAudio_Recording_SetSampleRate(AndroidAudioState *state, int sampleRate);
|
||||
bool AndroidAudio_Recording_Start(AndroidAudioState *state);
|
||||
bool AndroidAudio_Recording_Stop(AndroidAudioState *state);
|
||||
bool AndroidAudio_Pause(AndroidAudioState *state);
|
||||
bool AndroidAudio_Resume(AndroidAudioState *state);
|
||||
|
@ -678,8 +678,12 @@ extern "C" void Java_org_ppsspp_ppsspp_NativeApp_audioShutdown(JNIEnv *, jclass)
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" void Java_org_ppsspp_ppsspp_NativeApp_audioRecording_1Start(JNIEnv *, jclass, jint sampleRate) {
|
||||
AndroidAudio_Recording_Start(g_audioState, sampleRate);
|
||||
extern "C" void Java_org_ppsspp_ppsspp_NativeApp_audioRecording_1SetSampleRate(JNIEnv *, jclass, jint sampleRate) {
|
||||
AndroidAudio_Recording_SetSampleRate(g_audioState, sampleRate);
|
||||
}
|
||||
|
||||
extern "C" void Java_org_ppsspp_ppsspp_NativeApp_audioRecording_1Start(JNIEnv *, jclass) {
|
||||
AndroidAudio_Recording_Start(g_audioState);
|
||||
}
|
||||
|
||||
extern "C" void Java_org_ppsspp_ppsspp_NativeApp_audioRecording_1Stop(JNIEnv *, jclass) {
|
||||
|
@ -228,6 +228,11 @@ public abstract class NativeActivity extends Activity {
|
||||
mCameraHelper.startCamera();
|
||||
}
|
||||
break;
|
||||
case REQUEST_CODE_MICROPHONE_PERMISSION:
|
||||
if (permissionsGranted(permissions, grantResults)) {
|
||||
NativeApp.audioRecording_Start();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
@ -1295,9 +1300,10 @@ public abstract class NativeActivity extends Activity {
|
||||
}
|
||||
} else if (command.equals("microphone_command")) {
|
||||
if (params.startsWith("startRecording:")) {
|
||||
int sampleRate = Integer.parseInt(params.replace("startRecording:", ""));
|
||||
NativeApp.audioRecording_SetSampleRate(sampleRate);
|
||||
if (!askForPermissions(permissionsForMicrophone, REQUEST_CODE_MICROPHONE_PERMISSION)) {
|
||||
int sampleRate = Integer.valueOf(params.replace("startRecording:", ""));
|
||||
NativeApp.audioRecording_Start(sampleRate);
|
||||
NativeApp.audioRecording_Start();
|
||||
}
|
||||
} else if (params.equals("stopRecording")) {
|
||||
NativeApp.audioRecording_Stop();
|
||||
|
@ -17,7 +17,8 @@ public class NativeApp {
|
||||
public static native void audioShutdown();
|
||||
public static native void audioConfig(int optimalFramesPerBuffer, int optimalSampleRate);
|
||||
|
||||
public static native void audioRecording_Start(int sampleRate);
|
||||
public static native void audioRecording_SetSampleRate(int sampleRate);
|
||||
public static native void audioRecording_Start();
|
||||
public static native void audioRecording_Stop();
|
||||
|
||||
public static native void computeDesiredBackbufferDimensions();
|
||||
|
Loading…
x
Reference in New Issue
Block a user