我当前正在开发应用程序,我想控制第一次在左侧和右侧第二次在不同耳机侧播放声音文件,有什么方法可以实现?
解决方法:
是的,有办法. MediaPlayer.setVolume(float leftVolume,float rightVolume)
.
在下面的代码片段中,我们正在播放资产文件夹中包含的.mp3文件(请注意,如果文件夹中有多个文件,则应选中此answer).通过按下button对象之一,仅在左耳机或右耳机中播放歌曲:
MediaPlayer AudioObj = new MediaPlayer(); AudioObj.setonPreparedListener(new MediaPlayer.OnPreparedListener() { @OverrIDe public voID onPrepared(final MediaPlayer mediaPlayer) { findVIEwByID(R.ID.progressbar).setVisibility(VIEw.INVISIBLE); button btnl = (button) findVIEwByID(R.ID.btnPlayleft); button btnr = (button) findVIEwByID(R.ID.btnPlayright); btnl.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw vIEw) { mediaPlayer.setVolume(1, 0); mediaPlayer.start(); } }); btnr.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw vIEw) { mediaPlayer.setVolume(0, 1); mediaPlayer.start(); } }); } }); AudioObj.setAudioStreamType(AudioManager.STREAM_MUSIC); try { AssetfileDescriptor afd = getAssets().openFd("audio.mp3"); AudioObj.setDataSource(afd.getfileDescriptor()); }catch (IOException e){} AudioObj.prepareAsync();
附言
音频文件必须是立体声的.
在播放音频之前是否要检查耳机是否已插入,以提示消息或执行其他 *** 作:
AudioManager audioManager = (AudioManager)getSystemService(Context.AUdio_SERVICE);if(!audioManager.isspeakerphoneOn()){//prompt a message or do something else}
总结 以上是内存溢出为你收集整理的android-如何在单个耳机端播放声音文件全部内容,希望文章能够帮你解决android-如何在单个耳机端播放声音文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)