android视频合成背景音乐,Android实现即时音效和背景音乐(整理自用)

();

// 加载声音文件 并且设置为 ID=1(1号声音)放入 hm 中

hm.put(1, sp.load(this, R.raw.backroad, 1));// raw 位于 res 目录下

}

// 播放声音

protected void playSound(int sound, int loop) {// sound 声音 ID=1,loop 0不循环,1循环

// 获取 AudioManager 引用

AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);

// 获取当前音量

float streamVolumeCurrent = am

.getStreamVolume(AudioManager.STREAM_MUSIC);

// 获取系统最大音量

float streamVolumeMax = am

.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

// 计算播放音量

float volume = streamVolumeCurrent / streamVolumeMax;

// 调用 SoundPool 的 play 方法播放声音文件

currStreamId = sp.play(hm.get(sound), volume, volume, 1, loop, 1.0f);

}

sp.stop(currStreamId);

2) 如何设置要播放的文件:

MediaPlayer要播放的文件主要包括3个来源:

a. 用户在应用中事先自带的resource资源

例如:MediaPlayer.create(this, R.raw.test);

b. 存储在SD卡或其他文件路径下的媒体文件

例如:mp.setDataSource("/sdcard/test.mp3");

c. 网络上的媒体文件

例如:mp.setDataSource("http://www.citynorth.cn/music/confucius.mp3");

MediaPlayer的setDataSource一共四个方法:

setDataSource (String path)

setDataSource (FileDescriptor fd)

setDataSource (Context context, Uri uri)

setDataSource (FileDescriptor fd, long offset, long length)

其中使用FileDescriptor时,需要将文件放到与res文件夹平级的assets文件夹里,然后使用:

AssetFileDescriptor fileDescriptor = getAssets().openFd("rain.mp3");

m_mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(), fileDescriptor.getLength());

来设置datasource

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值