iOS開發之簡單音訊播放器

青玉伏案發表於2015-12-12

今天第一次接觸IOS開發的UI部分,之前學OC的時候一直在模擬的使用Target-Action回撥模式,今天算是真正的用了一次。為了熟悉一下基本控制元件的使用方法,和UI部分的回撥,下面開發了一個特別簡易的音訊播放器,來犒勞一下自己這一天的UI學習成果。在用到UI的控制元件時如果很好的理解之前部落格在OC中的Target-Action回撥模式,感覺控制元件的用法會很順手。下面的簡易播放器沒有用到多高深的技術,只是一些基本控制元件和View的使用。

話不多說簡單的介紹一下今天的音訊播放器。在播放器中我們用到了UIProgressView(進度條)來顯示音訊的播放進度,用UILabel顯示播放的當前時間和總時間。用UIImageView和UIImagel來加入圖片,用UISegmentedControl來控制播放和暫停,用滑動器UISlider來控制音訊的音量。上面的執行元件都是UIKit中的元件,我們要定時的獲取音訊的播放時間,我們還要用到NSTimer來定時獲取CurrentTime。播放器怎麼能少的了關鍵的元件呢,我們還需要引入框架AVFoundation.framework。我們會用到元件AVAudioPlayer來播放我們的音訊。

下面是簡易音訊播放器的截圖:

​    ​    ​    ​    ​    ​           260909335011350

​1.功能介紹:

​    ​點選播放會播放預設歌曲, 同時顯示播放進度和播放當前時間,下面的slider可以調節音訊的聲音大小。

​2.主要開發過程

​    ​    ​1.在我們的XCode中新建一個SingleView的iPhone的工程,為了更好的理解和配置控制元件和view,就不使用storyboard來進行控制元件的拖拽啦。在我們新建工程下面的ViewController.m編寫我們的程式碼,為了隱藏我們音訊播放器使用的控制元件和控制元件回撥的方法,我們在ViewController.m中用延展來對我們的元件和方法進行宣告。程式碼如下:

​    ​    ​1.下面的程式碼是為我們的應用新增背景圖片,也就是我們上面圖片中的黑色背景圖片,在初始化ImageView的時候我們知道view的位置和大小CGRectMack(x, y, width, height); 用Image來通過圖片檔案的名稱來載入我們的圖片,把圖片檢視插入到主檢視的最底層,同時設定其index來實現,程式碼如下。    ​    ​2.上面是我們的延展部分,來進行我們的元件的宣告和方法的宣告,具體的實現就寫在本檔案中的@implementation中,我們把元件的實現和配置寫在-(void) viewDidLoad;方法中,該方法會在主檢視載入完畢後執行。在編寫實現程式碼之前我們要把我們用到的媒體檔案拖入到我們的Project中,下面是具體程式碼的實現。

 

​    ​    ​2.初始化我們的進度條並設定進度條的位置和大小,對進度值初始化為零。同時把進度條通過addSubView加入到我們的主檢視中

 

​    ​    ​3.新增中間的圖片,和新增背景圖片相似,在這就不贅述了程式碼如下:

​    ​4.初始化我們的segment, 在初始化segment的同時,我們通過便利初始化方法來指定有幾個按鍵和每個按鍵中的值。配置的時候我們可以通過tintColor來設定我們segment的顏色,通過Target-Action來註冊segment要回撥的方法,同時指定回撥的事件,我們設定的時UIControlEventValueChange,就是當segment的selectedSegmentIndex改變時,呼叫我們註冊的方法。程式碼如下:   ​    ​

 

 

​    ​    ​5.下面的程式碼是要初始化並配置我們的音訊播放器元件,配置的時候指定我們音訊所在路徑的url,並且回寫播放的錯誤程式碼如下

 

​    ​    ​6.設定定時器,並註冊我們要間隔呼叫的方法。下面的定時器是1秒中重複呼叫我們當前view中的time方法,在time方法中我們會獲取當前音訊的當前播放時間,並在lable中顯示,稍後會提到    ​

 

​    ​    ​7.新增我們的音量控制元件,並繫結當slider的值改變是呼叫哪一個方法。同時指定slider的最大值和最小值,程式碼如下:​    ​    ​

 

​    ​3.元件初始化和配置完畢,接下來我們就得實現各控制元件要回撥的方法。

​    ​    ​1.當slider的值改變是我們要呼叫的方法如下,就是要設定一下音訊播放器的聲音,程式碼如下:

 

 

​    ​    ​2.定時器定時呼叫的方法如下,在此方法中我們要獲取音訊的總時間和當前播放時間,並把秒轉換成分鐘(下面的程式碼沒有使用NSDateFormat來轉換時間,讀者可以用自己的方法來轉換),轉換完以後在label中顯示當前時間和總時間,程式碼如下​    ​    ​

 

 

​​    ​    ​3.下面是segment要回撥的方法根據segment的selectedSegmentIndex來設定播放器的播放還是停止,程式碼如下:

​    ​

 

​    ​    ​以上是整個簡易播放器的程式碼,以為功能特別簡單所以程式碼也不多。主要通過上面的簡易播放器來熟悉一下IOS開發中控制元件和view的使用流程,筆者也在一直學習,水平有限,歡迎批評指正。​

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

iOS開發之簡單音訊播放器

相關文章