Recentemente encontrou um problema de controle da velocidade de reprodução de áudio, o método comum é usar SoundPool
.
Mas um problema com esse método é que ele só pode tocar por 3 segundos no meu telefone núbio. Não encontrei a configuração no código-fonte, mas há uma mensagem nas informações de registro impressas: D/MMParserExtractor: Using default parser out buffer size = 3000
e só pode tocar localmente arquivos ou salvar No raw
arquivo do meio, o arquivo de rede não pode ser reproduzido diretamente, apenas pode ser descartado.
Depois de pesquisar no Google, encontrei outra maneira:
http://stackoverflow.com/questions/10849961/speed-control-of-mediaplayer-in-android
o jeito é:
MediaPlayer mp = ...; //Whatever
float speed = 0.75f;
mp.setPlaybackParams(mp.getPlaybackParams().setSpeed(speed));
No entanto, este método só pode ser usado quando a API é igual a 23 e acima. Esses dois métodos foram encontrados até agora.
O primeiro é SoundPool
modificar os arquivos de áudio de acordo com os requisitos de. O
segundo é abandonar os telefones celulares com API inferior a 23 ou ligar para o gerente de produto.
A propósito, anote raw
o método para obter o ID do recurso:
int resId=context.getResources().getIdentifier(raw, "raw", context.getPackageName());
Uri uri=Uri.parse("android.resource://" + context.getPackageName() + "/raw/" + resId);