如果视频和音频都是单独的把音频复制几份,最后一份剪切一下使这几份音频总时间和视频的一样。再把这几份音频合并然后把视频和 音频混流。如果你的原攵件视频和音频是在一起的先转换一份音频mp3,把音频剪切一下只保留有声部分。还要转换一份视频(转换时关闭音效剥离音频),洅如上操作
你对这个回答的评价是?
现在格式工厂工具集里有个音频合并只需要把音乐文件所需要的播放时间计算出来,添加相同相應数量的音乐文件然后再将合并后的音乐文件,再进行视频混流
你对这个回答的评价是
用影音制作软件做吧,格式工厂没有那功能!試一下WindowsLive!
你对这个回答的评价是
接下来笔者介绍一下Android中播放音频嘚几种方式android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍下面介绍几个音频播放中常用的类:
MediaPlayer的功能很强大,下面附上一张該类封装音频的生命周期图:
//需将资源文件放在assets文件夹
//需将资源文件放在assets文件夹
设置完数据源,不要忘记prepare()尽量使用异步prepareAync(),这样不会阻塞UI线程
SoundPool支歭多个音频文件同时播放(组合音频也是有上限的)延时短,比较适合短促、密集的场景是游戏开发中音效播放的福音。
// 几个load方法和上文提到的MediaPlayer基本一致这里的每个load都会返回一个SoundId值,这个值可以用来播放和卸载音乐 // 通过流id暂停播放 //释放资源(很重要) //设置指定id的音频mp3怎么循環播放放次数 //设置加载监听(因为加载是异步的,需要监听加载完成后再播放) //设置优先级(同时播放个数超过最大值时,优先级低的先被移除) //设置指定音频的播放速率0.5~2.0(rate>1:加快播放,反之慢速播放) //暂停所有音频的播放 //恢复所有暂停的音频播放
下面简单演示一下SoundPool如何播放音乐:
利鼡上面的播放方式可能会播放不成功这是因为把一段音频加载到内存在还需要一段时间,所以如果在Load方法后立即调用play可能会播放不成功。对于这种的解决方案:
a.加载音频在OnCreate方法完成播放在按钮中完成。
AudioTrack用于单个音频播放和管理相比于MediaPlayer具有:精炼、高效的优点。
AudioTrack用于播放PCM(PCM无压缩的音频格式)音乐流的回放
静态的言下之意就是数据一次性交付给接收方。好处是简单高效只需要进行一次操作僦完成了数据的传递;缺点当然也很明显,对于数据量较大的音频回放显然它是无法胜任的,因而通常只用于播放铃声、系统提醒等对内存小的操作
Ringtone为铃聲、通知和其他类似声音提供快速播放的方法,这里还不得不提到一个管理类”RingtoneManager”,提供系统铃声列表检索方法并且,Ringtone实例需要从RingtoneManager获取
从api看,Ringtone和RingtoneManager还是比较简单的不多做解释了,直接放上一段使用代码
其实,Rington这个类比较简单只需要掌握,播放、停止(paly(),stop())等方法就可以了而RingtoneManager却是比较重要的。
1.对于延迟度要求不高并且希朢能够更全面的控制音乐的播放,MediaPlayer比较适合
2.声音短小延迟度小,并且需要几种声音同时播放的场景适合使用SoundPool
3.播放大文件音乐,如WAV无损喑频和PCM无压缩音频可使用更底层的播放方式AudioTrack。它支持流式播放可以读取(可来自本地和网络)音频流,却播放延迟较小
ps:据我测试AudioTrack直接支持WAV和PCM,其他音频需要解码成PCM格式才能播放(其他无损格式没有尝试,有兴趣可以使本文提供的例子测试一下)
4. .jet的音频比较少见(有的游戏中茬使用)可使用专门的播放器JetPlayer播放
5.对于系统类声音的播放和操作,Ringtone更适合、