1
AndroidのLollipopバージョンでこの部分のコードを実行しようとすると、全て大丈夫。しかし、マシュマロのバージョンで動作していない:Audio再生Audio Stream with Marshmallow
public static void play() {
InputStream generetedStream = ...;
int minBufferSize = AudioTrack.getMinBufferSize(16000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
AudioTrack trackw = new AudioTrack(AudioManager.STREAM_MUSIC, 16000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, minBufferSize, AudioTrack.MODE_STREAM);
int bufferSize = 1024;
byte[] lin = new byte[bufferSize];
trackw.play();
int i = 0;
if (generetedStream != null) {
while (generetedStream != null && (i = generetedStream.read(lin, 0, bufferSize)) > -1) {
trackw.write(lin, 0, lin.length);
}
}
}
を追加しまし権限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
は、マシュマロのバージョンのいずれかの変更AudioTrackがあります?
は、実行時にストレージの/ etc権限を要求することを忘れないでください?あなたはstorage/internet/resources/generateから遊んでいますか? –
アンドロイド版5の場合はすべて問題ありません。バージョン6では音声が途切れる。 –
私はそれを得た。それについては尋ねなかった。 'InputStream generetedStream'をリソースやインターネットやストレージから取り出したり、あなた自身で生成していますか? –