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

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

      

    欢迎到我的网站看看
  • 相关阅读:
    Swift无限滚动的FSPagerView
    Swift 中map、flatMap、compactMap、filer、reduce的使用总结
    Swift SnapKit自动布局的使用
    Swift UIScrollView懒加载的使用
    SwiftJson的使用
    SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0...
    Swift 一个xib引用另外一个xib
    Swift xib或者storyboard添加圆角或者边框
    Swift使用Alamofire
    Swift中使用OC的类或者三方框架
  • 原文地址:https://www.cnblogs.com/Caiyinsoft/p/2121029.html
Copyright © 2011-2022 走看看