Кто-нибудь знает, есть ли необходимость в том, чтобы аудиозапись и аудиодорожка были разделены особым образом/типом потока, исполняемым, сервисным и т. д., чтобы они могли работать вместе? Теперь я могу запустить аудиодорожку, затем аудиозапись без проблем.
Но если я запускаю и останавливаю аудиодорожку во время записи, аудиозапись начинает выводить 0, как если бы она была отключена. (Но он не отключен и не остановлен)
Если я запускаю аудиозапись, то аудиодорожка затем аудиозапись также «заглушается».
Также странно то, что, когда я отключаю и подключаю свою проводную гарнитуру, она снова начинает запись/вывод записи, отличную от 0 (что заставляет меня думать, что мои телефоны Lenovo B и Lenovo C2 слишком дешевы (проблемы схемы/оборудования) или имеют проблемы со сборкой ) но я не знаю.
Кто-нибудь слышал об этой проблеме с внезапно «заглушенной» аудиозаписью или аудиозаписью, которая реагирует на отключение/подключение проводной гарнитуры без применения к ней каких-либо настроек/методов?
Обновление кода
class myRecordAndPlayer(){
public void initiateRecorder() {
if(audio.getMode()!=AudioManager.MODE_IN_CALL) {
audio.setMode(AudioManager.MODE_IN_CALL);
//audio.setSpeakerphoneOn(false); for mode in com (mode in com produces more echo/crosstalk)
}
rec = true;
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
android.os.Process.setThreadPriority(Process.THREAD_PRIORITY_URGENT_AUDIO);
AudioRecord audioRecorder = new AudioRecord(MediaRecorder.AudioSource.MIC, SAMPLE_RATE,
AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT,
AudioRecord.getMinBufferSize(SAMPLE_RATE, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT) * 10);
try {
audioRecorder.startRecording();
while (rec) {
bytes_read = audioRecorder.read(buf_audio, 0, buf_audio_len);
public void initiatePlayer() {
if(!play) {
play = true;
android.os.Process.setThreadPriority(Process.THREAD_PRIORITY_URGENT_AUDIO);
Thread receiveThread = new Thread(new Runnable() {
@Override
public void run() {
AudioTrack track = new AudioTrack(AudioManager.STREAM_MUSIC, SAMPLE_RATE, AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT, BUF_SIZE, AudioTrack.MODE_STREAM);
track.play();
try {
while(play) {
track.write(bufToPlay, 0, bufToPlay.length);