在MonoTouch中播放音频

在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功能比较强大,有一些属性和方法,我会在另一篇文章中专门介绍。

写到这还有一个要注意的地方,就是文件路径的大小写。在模拟器上运行时,大小写关系不大,但在真机上运行,大小写就有区别了。一定要注意这个。

  

欢迎到我的网站看看
原文地址:https://www.cnblogs.com/Caiyinsoft/p/2121029.html