Android MediaPlayer 오디 오 배속 재생 재생 속도 조절 문제
3092 단어 androidmediaPlayer방송 하 다.
MediaPlayer 는 Android API 23(Android M)부터 재생 속도 조절 을 지원 합 니 다.
사용 하 는 방법 은 setPlaybackParams 입 니 다.재생 속성 을 나타 내 는 클래스 PlaybackParams 를 입력 합 니 다.
미디어 플레이어 로 재생 속 도 를 조절 하 는 방법 을 소개 한다.
MediaPlayer.setPlaybackParams 설명
재생 속 도 를 PlaybackParams 대상 에 설정 하고 이 대상 을 setPlaybackParams 에 전송 합 니 다.
setPlayback Params 는 native 방법 입 니 다.
MediaPlayer 가 준비 되 지 않 았 다 면(prepared 전에)이 방법 을 사용 하면 MediaPlayer 의 상 태 를 바 꾸 지 않 습 니 다.
MediaPlayer 가 prepare 에 성공 한 후 설정 속도 가 0 이면 pause 방법 을 호출 한 것 과 같 습 니 다.설정 속도 가 0 이 아니라면 start 방법 을 호출 한 셈 입 니 다.
이상 상황
MediaPlayer 가 초기 화 되 지 않 았 거나 풀 려 났 거나 Idle 또는 End 상태 라면 setPlaybackParams 방법 을 사용 하면 IllegalState Exception 이상 을 던 집 니 다.
들 어 오 는 Playback Params 가 지원 되 지 않 으 면 IllegalArgument Exception 이상 을 던 집 니 다.
설정 속도 가 0 보다 적 으 면 자바.lang.IllegalArgument Exception 이상 을 던 집 니 다.
MediaPlayer.setPlaybackParams 방법 예시
재생 속 도 를 설정 합 니 다.현재 시스템 버 전 을 먼저 판단 합 니 다.
private boolean setPlaySpeed(float speed) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
PlaybackParams params = mediaPlayer.getPlaybackParams();
params.setSpeed(speed);
mediaPlayer.setPlaybackParams(params);
return true;
}
return false;
}
getPlaybackParams 는 미디어 플레이어 의 현재 PlaybackParams 대상 을 가 져 올 수 있 습 니 다.이 방법 에 try catch 를 더 해서 되 돌아 오 는 boolean 값 과 결합 하여 설정 속도 가 성 공 했 는 지 판단 할 수 있 습 니 다.
private boolean setPlaySpeed(float speed) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
try {
PlaybackParams params = mediaPlayer.getPlaybackParams();
params.setSpeed(speed);
mediaPlayer.setPlaybackParams(params);
return true;
} catch (Exception e) {
Log.e(TAG, "setPlaySpeed: ", e);
return false;
}
}
return false;
}
참조 코드Playback Params 에 포 함 된 속도 값
MediaPlayer 재생 속 도 를 조정 할 때 저 희 는 PlaybackParams 대상 을 사 용 했 습 니 다.오디 오 트랙 도 이런 종류 로 쓰 인 다.
Playback Params 는 재생 할 때의 속성 을 포함 하고 있 습 니 다.예 를 들 어 speed 는 재생 속도 다.
PlaybackParams.setSpeed(float speed)
전송 속도 배율 값.현재 설정 한 속 도 를 표시 합 니 다.
public PlaybackParams setSpeed(float speed) {
mSpeed = speed;
mSet |= SET_SPEED;
return this;
}
PlaybackParams.getSpeed()
설정 한 속도 값 가 져 오기.이전에 속 도 를 설정 하지 않 았 다 면,IllegalState Exception 이상 을 던 졌 다.
public float getSpeed() {
if ((mSet & SET_SPEED) == 0) {
throw new IllegalStateException("speed not set");
}
return mSpeed;
}
총결산위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 안 드 로 이 드 미디어 플레이어 오디 오 배속 재생 으로 재생 속 도 를 조절 하 는 문제 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.