我目前有代码使用AudioRecord类从设备mic读取录音,然后使用AudioTrack类播放.
我的问题是,当我播放它时,它通过扬声器电话播放.
我希望它通过设备上的耳机播出.
这是我的代码:
public class LoopProg extends Activity {
boolean isRecording; //currently not used
AudioManager am;
int count = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setMicrophoneMute(true);
while(count <= 1000000){
Record record = new Record();
record.run();
count ++;
Log.d("COUNT", "Count is : " + count);
}
}
public class Record extends Thread{
static final int bufferSize = 200000;
final short[] buffer = new short[bufferSize]; …Run Code Online (Sandbox Code Playgroud) 插入耳机时如何让内置手机扬声器播放声音?我看到使用SoundAbout应用程序是可能的.
我试过这个答案提示
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
Run Code Online (Sandbox Code Playgroud)
我可能以错误的方式做到了.我只是设置它并使用MediaPlayer播放一些音乐.
我正在使用Nexus 6进行此测试.
即使插入耳机,我们如何通过扬声器传输音频输出?
我的代码:
if(audioManager.isWiredHeadsetOn())
{
audioManager.setWiredHeadsetOn(false);
audioManager.setSpeakerphoneOn(true);
audioManager.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_SPEAKER, AudioManager.ROUTE_ALL);
audioManager.setMode(AudioManager.MODE_NORMAL);
}
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?
我必须改变音频源的音频输出,这样我才能听到扬声器而不是耳机
老实说,我不知道怎么做:)我使用的代码:
_audioSource.clip = Microphone.Start(Microphone.devices[0], false, 500, AudioSettings.outputSampleRate);
Run Code Online (Sandbox Code Playgroud)
如果我插入了耳机,声音将会播放,这不是我的目标
也许是我可以使用的Unity中的东西?或者只是在Android Studio中创建一个库
我正在通话时尝试启用扬声器:
final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);
Run Code Online (Sandbox Code Playgroud)
我试图检查setSpeakerphoneOn()音频管理器后,通过询问是否仍未打开扬声器isSpeakerphoneOn()
audioManager.isSpeakerphoneOn();
Run Code Online (Sandbox Code Playgroud)
在我的日志中,我可以看到一些我无法理解的错误:
E/AudioManager: Don't setBluetoothScoOn-PackageName: com.myapp.app on = false
E/AudioManager: Don't setSpeakerphoneOn-PackageName: com.myapp.app on = true
Run Code Online (Sandbox Code Playgroud)
我在论坛中找不到有关此错误的任何信息。
在以下设备上不起作用:中兴Z981,华为p9,我已经尝试过了,并android.permission.MODIFY_AUDIO_SETTINGS获得了批准。