Как воспроизвести 32-разрядный файл с плавающей точкой WAV в Android 4.3.1 (WAV-файл, прикрепленный как голосовая почта в VOIP)?
Этот тип WAV-файла (32-битный моно с плавающей запятой 8000 Гц), который прикреплен к голосовой почте, имеет другой тип и не может обрабатываться Mediaplayer/SoundPool. Посмотрите на эту ссылку, здесь есть ссылка на аналогичный файл sample.wav, так что вы можете попробовать его сами, если хотите.(Это 32-разрядная версия wav 3225 float 11025hz mono)
моей первой попыткой было воспроизвести его с помощью mediaPlayer, но при этом выдается исключение NullPointerException: вот журнал cat:
- 11-26 16:37:14.969 20287-20287 E/AndroidRuntime: FATAL EXCEPTION:main
- 11-26 16:37:14.969 20287-20287 E/AndroidRuntime:
java.lang.NullPointerException
- 11-26 16:37:14.969 20287-20287 E/AndroidRuntime: at
com.example.bastamib.wavplayer.MainActivity$2.onClick(MainActivity.java:38)
Затем я использовал SoundPool:
public class MainActivity extends Activity {
SoundPool mPlayer;
int mSoundId ;
Button play1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPlayer = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
mSoundId = mPlayer.load(this, R.raw.s2, 1);
Button play1 = (Button) this.findViewById(R.id.buttonPlay1);
play1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mPlayer.play(mSoundId, 0.99f, 0.99f, 0, 0, 1f);
}
});
}
}
но не сработало, я получил
11-26 16:31:14.019 7971-7971 W/SoundPool: sample 1 not READY
чинить
образец 1 не готов
Я попробовал образец Soundpool не готов, но ни один из ответивших ответов, включая выбранный ответ, не работал для меня (в основном нет звука)
Затем я перешел к решению AudioTrack: здесь объяснено Использование AudioTrack в Android для воспроизведения файла WAV
В результате появились статические шумы! совсем не интересно! pifff
чтобы исправить это, я применил Android AudioTrack, проигрывая файл.wav, получая только белый шум, но не повезло, применил все ответы там и все еще получал статические шумы.
и вот я застрял! любая помощь будет оценена.
примечание: я знаю, что есть некоторые приложения, такие как 'remote wav', которые могут воспроизводить файл.wav VOIP, однако мне нужно сделать эту встроенную функцию для моего приложения.