Fix issue 1743700: AudioTrack: setPlaybackRate can not set the playback rate to twice of the ouputSR

Store sample rate on 32 bits instead of 16 bits in audio_track_cblk_t.
Removed sampleRate() methods from AudioTrack and AudioRecord: replaced by getSampleRate().
AudioTrack::setSampleRate() no returns a status.
This commit is contained in:
Eric Laurent
2009-07-07 07:10:45 -07:00
parent 37ea711225
commit 88e209dcf8
8 changed files with 36 additions and 60 deletions

View File

@ -539,16 +539,17 @@ static jint android_media_AudioTrack_get_native_frame_count(JNIEnv *env, jobjec
// ----------------------------------------------------------------------------
static void android_media_AudioTrack_set_playback_rate(JNIEnv *env, jobject thiz,
static jint android_media_AudioTrack_set_playback_rate(JNIEnv *env, jobject thiz,
jint sampleRateInHz) {
AudioTrack *lpTrack = (AudioTrack *)env->GetIntField(
thiz, javaAudioTrackFields.nativeTrackInJavaObj);
if (lpTrack) {
lpTrack->setSampleRate(sampleRateInHz);
return android_media_translateErrorCode(lpTrack->setSampleRate(sampleRateInHz));
} else {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve AudioTrack pointer for setSampleRate()");
return AUDIOTRACK_ERROR;
}
}
@ -788,7 +789,7 @@ static JNINativeMethod gMethods[] = {
{"native_get_native_frame_count",
"()I", (void *)android_media_AudioTrack_get_native_frame_count},
{"native_set_playback_rate",
"(I)V", (void *)android_media_AudioTrack_set_playback_rate},
"(I)I", (void *)android_media_AudioTrack_set_playback_rate},
{"native_get_playback_rate",
"()I", (void *)android_media_AudioTrack_get_playback_rate},
{"native_set_marker_pos","(I)I", (void *)android_media_AudioTrack_set_marker_pos},