标签: speaker

如何在android 4.0中以编程方式打开/关闭扬声器

我通过媒体播放器播放文件,我想提供扬声器开/关,播放耳机,蓝牙等选项.我尝试了下面的代码,它适用于Android 2.2,但我想要的东西也适用于2.2和4.0两者.你能帮我看看如何以编程方式打开/关闭扬声器并通过耳机播放吗?

AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    if(isOn){
        audioManager.setMode(AudioManager.MODE_IN_CALL);    
        audioManager.setMode(AudioManager.MODE_NORMAL); 
    }else{
        //Seems that this back and forth somehow resets the audio channel
        audioManager.setMode(AudioManager.MODE_NORMAL);     
        audioManager.setMode(AudioManager.MODE_IN_CALL);        
    }
    audioManager.setSpeakerphoneOn(isOn);
Run Code Online (Sandbox Code Playgroud)

PS:我在manifest中给出了这个权限:android.permission.MODIFY_AUDIO_SETTINGS权限

android speaker android-4.0-ice-cream-sandwich

19
推荐指数
4
解决办法
4万
查看次数

如何在Android上直接从麦克风到扬声器播放声音?

在我的应用程序中,我需要将麦克风的声音直接传送到扬声器.没有其他行动.我找到了一种方法,通过播放文件和关闭扬声器将声音从麦克风传送到听筒.所以我猜扬声器的工作方式类似.但是我不知道如何摆脱播放文件的事情.谢谢.

speaker() {
    m_audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
    m_audioManager.setSpeakerphoneOn(true);  // not needed I think
    //m_audioManager.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_EARPIECE, AudioManager.ROUTE_ALL); earpiece need this?
    setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
    m_audioManager.setMode(AudioManager.MODE_IN_CALL);
Run Code Online (Sandbox Code Playgroud)

android microphone speaker

12
推荐指数
1
解决办法
2万
查看次数

如何通过代码在通话期间启用Android扬声器?

此问题在此网站上已经被问过并回答了两次,但该代码似乎根本不适用于现代手机.我正在研究Android 4.2和Android 4.3,但似乎都不起作用.

我在通话期间通过媒体播放器播放MP3,它工作正常,但歌曲和通话都是通过语音扬声器传来的.如果我按"扬声器",他们都继续通过扬声器播放.我需要这种效果,但不必自己按下它

    AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    audioManager.setMode(AudioManager.MODE_IN_CALL);
    audioManager.setSpeakerphoneOn(true);

     <uses-permission android:name="android.permission.RECORD_AUDIO" />
     <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
Run Code Online (Sandbox Code Playgroud)

建议将其作为SO的其他问题的解决方案,但它根本不起作用.它应该,代码很好,但它根本不对音频做任何事情.

思考?

android volume phone-call speaker

8
推荐指数
1
解决办法
2195
查看次数

iOS:是否可以同时从耳机和扬声器发送音频?

我们希望从耳机插孔发送一些串行数据,但仍希望能够从扬声器播放音频.是否可以向两者发送输出?如果是这样,是否可以向每个发送不同的音频?

audio headphones speaker ios

7
推荐指数
1
解决办法
1482
查看次数

使用android.net.rtp进行VoIP

我正在尝试使用该android.net.rtp库来制作VoIP应用程序.它的音频流可以正确发送和接收.

我的问题是:被叫方手机的扬声器工作正常,但耳机始终静音(即使我关闭扬声器).

我的代码:

AudioManager Audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
Audio.setMode(AudioManager.MODE_IN_COMMUNICATION);
Audio.setSpeakerphoneOn(true);
Audio.setMicrophoneMute(false);
sender = new RtpStreamSender(null, "169.0.199.19", AudioCodec.PCMU);
Run Code Online (Sandbox Code Playgroud)

android rtp speaker headset

6
推荐指数
1
解决办法
526
查看次数

控制强制扬声器音频的音量

我正在使用OpenSL ES播放音频片段.在我的代码中我有

    audioManager.setMode(AudioManager.MODE_IN_CALL);
    audioManager.setSpeakerphoneOn(true);
Run Code Online (Sandbox Code Playgroud)

在插入耳机时强制音频通过扬声器.它工作正常,但我无法控制音量.播放剪辑时按音量按钮可使音量搜索栏出现并移动,但音量不会改变.打电话setVolumeControlStream(AudioManager.STREAM_VOICE_CALL)或打电话setVolumeControlStream(AudioManager.STREAM_MUSIC)之前似乎没有帮助.更改我的应用程序之外的任何卷(例如,在Android设置中)不会影响播放音量.未应用路由时,音量控制在耳机和扬声器上均可正常工作.

我也尝试使用我在另一个答案中找到的代码将音频路由到扬声器

    Class audioSystemClass = Class.forName("android.media.AudioSystem");
    Method setForceUse = audioSystemClass.getMethod("setForceUse", int.class, int.class);
    // First 1 == FOR_MEDIA, second 1 == FORCE_SPEAKER. To go back to the default
    // behavior, use FORCE_NONE (0).
    setForceUse.invoke(null, 1, 1);
Run Code Online (Sandbox Code Playgroud)

但它不能在我的Android 4.3 Nexus 4上运行.无论如何,我需要最兼容的方式.

有任何想法吗?谢谢.

android speaker opensl android-audiomanager

6
推荐指数
1
解决办法
7348
查看次数

python库哔哔主板扬声器

我需要一种python方式来发出系统/主板扬声器的声音,而不是连接到我电脑的扬声器.我并不总是打开扬声器,所以我需要发出主板扬声器的哔声.

我见过的所有图书馆(特别是winound),只是通过连接到我电脑的扬声器播放声音.我想给系统/主板扬声器发出嘟嘟声.

有没有办法让系统扬声器发出哔哔声?我很喜欢Windows依赖库.

python speaker

6
推荐指数
1
解决办法
3531
查看次数

如何在插入 3.5 毫米插孔以使用外部麦克风录制声音时使用内部扬声器播放声音

我现在正在编写一个应用程序,以便在用户进行一些练习时通过内部扬声器提供声音反馈。

现在我想添加一个功能来记录用户的心跳并通过一个由 3.5 毫米插孔插入手机的听诊器呼吸。问题是当我插入插孔时,扬声器不会播放任何声音,因为手机认为耳机已连接并且声音将通过它们播放。

我想要实现的是通过插入手机的听诊器录制声音,同时通过内置扬声器播放声音。

基本上我使用两种方法来播放声音,MediaPlayer 和 TextToSpeech。

我在互联网上搜索,找到了这些文章:

在Android中强制通过扬声器输出声音

想在蓝牙耳机上播放TTS

他们告诉我要做的是添加权限 MODIFY_AUDIO_SETTINGS 到清单

声明变量:

MediaPlayer mediaPlayer; 
AudioManager mAudioManager;
HashMap<String, String> mHashAlarm = new HashMap<String, String>();
Run Code Online (Sandbox Code Playgroud)

在 OnCreate 方法中?

mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
mAudioManager.setSpeakerphoneOn(true);
mediaPlayer = MediaPlayer.create(context, R.raw.ding);
mHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_MUSIC));
...
tts.speak(text, TextToSpeech.QUEUE_FLUSH, mHashAlarm);
Run Code Online (Sandbox Code Playgroud)

但它们都不起作用。

有谁知道如何实现这个功能?任何想法都会有很大帮助。谢谢。

android audio-recording speaker

5
推荐指数
1
解决办法
1828
查看次数

三星Galaxy S5免提电话\麦克风问题

我对Galaxy S5有一个奇怪的设备特定问题.我正在使用SIP(Linphone)从Galaxy S5拨打另一台设备,当我启用免提电话时,设备开始使用其主麦克风作为降噪麦克风,其辅助麦克风作为主要麦克风.结果是我必须对设备背面说话,因为当我对着主麦克风讲话时,用户听不到我的声音.

AudioManager manager = (AudioManager) getSystemService(AUDIO_SERVICE);
manager.setSpeakerphoneOn(true);
Run Code Online (Sandbox Code Playgroud)

我使用此代码启用免提电话.我也尝试启用各种模式:

manager.setMode(AudioManager.MODE_NORMAL); //Also tested with other modes
Run Code Online (Sandbox Code Playgroud)

扬声器电话被禁用时没有问题.另外在标准拨号扬声器电话模式下工作得很好.无法在任何其他设备上重现此问题.

android sip speaker samsung-mobile linphone

5
推荐指数
1
解决办法
746
查看次数

如何用swift设置MPVolumeView?

我想设置Iphone Speaker默认值.我的音量控制快速代码如下.它工作正常,但当我点击airplay按钮时,我看到自动选择第二个.(Iphone)

var wrapperView = UIView(frame: CGRectMake(10,40,(self.view.bounds.size.width)-20, 20))           
        wrapperView.backgroundColor=UIColor.purpleColor()         
        self.view.addSubview(wrapperView)       
        var volumeView = MPVolumeView(frame: wrapperView.bounds)
        volumeView.tintColor=UIColor.purpleColor()  
        wrapperView.addSubview(volumeView)
Run Code Online (Sandbox Code Playgroud)

airplay按钮选项

volume speaker airplay mpvolumeview swift

5
推荐指数
1
解决办法
2488
查看次数