在IOS设备上,经常会碰到多媒体的播放。本文介绍音频播放。
播放声音有两种选择:
1.SystemSound
2.AVAudioPlayer
SystemSound
如果音频时间短(30秒以内),且未压缩,SystemSound是个好选择。
引入命名空间
using MonoTouch.AudioToolbox;
具体代码
SystemSound sound=null;
var audioFile=NSUrl.FromFilename("Sound/splash.wav"); sound= SystemSound.FromFile(audioFile); sound.PlaySystemSound();
用SystemSound播放的一个优势是反映速度快。如果在启动画面时,想加入声音播放,用这个很合适。
注意
一个要注意的地方是,最好声明成类级变量。MonoTouch会自动销毁对象,如果声明为方法级变量,极有可能过程执行完了,但声音还没有播放完就忽然停止。
AVAudioPlayer
30秒以上的音频文件,使用AVAudioPlayer。AVAudioPlayer还可以播放压缩的音频,比如mp3。
命名空间
MonoTouch.AVFoundation;
具体代码
private MonoTouch.AVFoundation.AVAudioPlayer audioplayer;
private void playBackgroundMusic() { stopBackgroundMusic(); NSUrl audioFile=NSUrl.FromFilename("Sound/splash.mp3"); audioplayer= MonoTouch.AVFoundation.AVAudioPlayer.FromUrl(audioFile); if (audioplayer!=null) { //audioplayer.NumberOfLoops=int.MaxValue; audioplayer.Play(); } } private void stopBackgroundMusic() { if (audioplayer!=null) { audioplayer.Stop(); audioplayer.Dispose(); audioplayer=null; } }
注意
AVAudioPlayer第一次初始化是,需要一些时间。所以最好是在引导画面和主画面中间,启动加载这个类。
AVAudioPlayer功能比较强大,有一些属性和方法,我会在另一篇文章中专门介绍。
写到这还有一个要注意的地方,就是文件路径的大小写。在模拟器上运行时,大小写关系不大,但在真机上运行,大小写就有区别了。一定要注意这个。