AVAudioPlayer In Xamarin iOS App

Introduction

Xamarin is a platform to develop cross-platform and multi-platform apps (for example, Windows phone, Android, iOS). In Xamarin platform, the code sharing concept is used. In Xamarin Studio, Visual Studio is also available.

AVAudioPlayer

AVAudioPlayer class calls an audio player and provides playback of audio data from a file or memory.
Using an audio player
  1. Play sounds of any duration.
  2. Play sounds from files or memory buffers.
  3. Loop sounds.
  4. Play multiple sounds simultaneously, one sound per audio player, with precise synchronization.
  5. Control relative playback level, stereo positioning, and playback rate for each sound you are playing.
  6. Seek a particular point in a sound file, which supports such application features as fast forward and rewind.
  7. Obtain data you can use for playback-level metering.
Prerequisites
  • Xamarin Studio.
  • Xcode.
The steps given below are required to be followed in order to play sound using AVAudioPlayer in Xamarin iOS, using Xamarin Studio.

Step 1

Go to Xamarin Studio.

Click New Solution—> select iOS—>select App--> Choose single View App. Afterwards, click Next.



Step 2

In this step, configure your app. Give the app name (Ex:sample), Organization Identifier. Afterwards, click Next.



Step 3

In this step, give your project name (Ex: Sample) and solution name (Ex: Sample).
 
Give the path of your project.
 
Afterwards, click Create.



Step 4

Subsequently, go to the solution. In there, you get all the files and sources in your project. Now, select Main.storyboard and double click to open Main.storyboard page.



Step 5

After opening the Main.storyboard, you can design this page, as per your desire.



Step 6

In this step, design your app using storyboard, Toolbox, and Properties.
  1. Button(btnPlay).
  2. Button(btnStop).


Step 7

In this step, add one folder and name it as Sounds.

Go to Solution—>Resource—>Right click—>Add—>New Folder. and give name (Ex:Sounds).



Step 8

In this step, add the Sound from your local system.

Go to Solution—>Resource-->Right click-->Add-->Add Files. Now, you can choose the required sound. Click open.

Next, choose "Copy the Files to the directory". Afterwards, click Ok.



Step 9

In this step, go to the ViewController.cs page and write the code given below.

ViewController.cs
  1. using System;  
  2. using AVFoundation;  
  3. using Foundation;  
  4. using UIKit;  
  5. namespace XamariniOSAVAudioPlayer {  
  6.     public partial class ViewController: UIViewController {  
  7.         //public values  
  8.         public AVAudioPlayer player;  
  9.         public float MusicVolume {  
  10.             get;  
  11.             set;  
  12.         } = 0.5 f;  
  13.         public bool MusicOn {  
  14.             get;  
  15.             set;  
  16.         } = true;  
  17.         protected ViewController(IntPtr handle): base(handle) {  
  18.             // Note: this .ctor should not contain any initialization logic.  
  19.         }  
  20.         public override void ViewDidLoad() {  
  21.             base.ViewDidLoad();  
  22.             // Perform any additional setup after loading the view, typically from a nib.  
  23.         }  
  24.         partial void BtnStop_TouchUpInside(UIButton sender) {  
  25.             //Backgroundmusic stop  
  26.             player.Stop();  
  27.         }  
  28.         partial void BtnPlay_TouchUpInside(UIButton sender) {  
  29.             //call PlayMusic method  
  30.             PlayMusic();  
  31.         }  
  32.         public void PlayMusic() {  
  33.             NSUrl songURL;  
  34.             if (!MusicOn) return;  
  35.             //Song url from your local Resource  
  36.             songURL = new NSUrl("Sounds/song.mp3");  
  37.             NSError err;  
  38.             player = new AVAudioPlayer(songURL, "Song", out err);  
  39.             player.Volume = MusicVolume;  
  40.             player.FinishedPlaying += delegate {  
  41.                 // backgroundMusic.Dispose();  
  42.                 player = null;  
  43.             };  
  44.             //Background Music play  
  45.             player.Play();  
  46.         }  
  47.         public override void DidReceiveMemoryWarning() {  
  48.             base.DidReceiveMemoryWarning();  
  49.             // Release any cached data, images, etc that aren't in use.  
  50.         }  
  51.     }  
  52. }  


Step 10

Now, go to Run option. Choose Debug and you will get the list of iPhone and iPad simulators, which are available. You can choose any one simulator and run it.



Output

After a few seconds, the app will start running on your iPhone simulator.You will see your app working successfully.

You click the Play button and the sound will play successfully.

You click the Stop button and the sound will stop successfully.


Summary

This was the process of how to play sound using AVAudioPlayer in Xamarin iOS , using Xamarin Studio.