5

Tôi hiện đang viết một ứng dụng yêu cầu ghi và xử lý thời gian thực dữ liệu âm thanh. Đối với điều này, tôi đang sử dụng lớp AudioRecord. Điều này hoạt động tốt và tốt, ngoại trừ cài đặt mặc định để ghi âm trên thiết bị thử nghiệm chính của tôi, một mối quan hệ thiên hà, là ghi lại từ loa sau. Tôi giả định rằng hầu hết các nguồn điện thoại mặc định sẽ là micrô phía sau hoặc micrô phía dưới, vì khi bạn đang sử dụng điện thoại để gọi, miệng của bạn ở gần phía dưới.Thay đổi Bản ghi Âm thanh Android Mặc định Nguồn vào

Tuy nhiên, ứng dụng của tôi yêu cầu tôi ghi lại từ loa ở mặt trước của điện thoại và vì vậy tôi hy vọng ai đó có thể giúp tôi cách thay đổi nguồn đầu vào AudioRecord theo chương trình. Tôi đã tìm kiếm rộng rãi câu trả lời cho điều này.

Một số điều tôi đã xem xét là:

  • Sử dụng Lớp AudioManager và bật loa điện thoại, chẳng hạn như:

    AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
    am.setSpeakerphoneOn(true);

  • Thay đổi các tham số AudioSource trong việc xây dựng các AudioRecord của tôi đối tượng:

    AudioRecord ar = new AudioRecord(AudioSource.????, ..., ..., ..., ...);

  • Tôi nhận thấy rằng API không quá cụ thể về định dạng AudioSource nào, vì vậy tôi đã tự hỏi liệu có ai khác đã đấu tranh với vấn đề này và có thể chỉ cho tôi đúng hướng không.

    Cảm ơn bạn trước,

    +0

    thử MediaRecorder.AudioSource.VOICE_CALL .. – Sandeep

    +0

    Tôi hiện không sử dụng Đối tượng MediaRecorder ... – lbrendanl

    Trả lời

    0

    Android hiện không hỗ trợ ghi âm cuộc gọi, vì vậy tôi tin rằng bạn không thể thay đổi để ghi âm từ tai nghe. Bạn không nên thực sự cần đến tuy nhiên, Mic ở dưới cùng của điện thoại sẽ có thể ghi lại mọi thứ với công suất đầy đủ bạn cần. Để đặt AudioRecord thành micrô, chỉ cần thực hiện:

    AudioRecord ar = new AudioRecord(AudioSource.MIC, ..., ..., ..., ...); 
    

    Điều này sẽ mang đến cho bạn chất lượng ghi âm tốt nhất.

    Các vấn đề liên quan