最終更新日:2018‐02-17
こんにちは。しばらくライブラリを勉強していたのですが、一番やりたかったのがこれです。音声ファイルの波形を表示してみるということ。早速やっていきます。
CocoaPodのバージョンを確認
$ pod --version 1.2.1
新規プロジェクト「DemoEZAudio」という名前で適当に作成したらターミナルから、
pod init
して、Podfileを以下のように編集します。
Podfileを編集します
# Uncomment the next line to define a global platform for your project # platform :ios, '8.0' target 'DemoEzAudio' do # Comment the next line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for DemoEzAudio pod 'EZAudio', '~> 1.0' end
そしてターミナルから
pod install
します。
ブリッジングヘッダーを追加
ブリッジングヘッダーを追加します。
ブリッジングヘッダーは、SwiftからObjective-Cのライブラリを利用可能にする橋渡しをしてくれるヘッダーファイルです。
メニューバーから[File]→[New]→[File...]を選択して、「Objective-C File]を選択し、[Next]ボタンを押下します。
https://github.com/syedhali/EZAudio/issues/267
何度か試してみましたが、どうもPodfileに
pod 'EZAudio', '~> 1.0'
と書かないと駄目なようです。
pod 'EZAudio'だけでは駄目です。
Podfileは以下のように修正します。
platform :ios, '8.0' target 'DemoEZAudio' do pod 'EZAudio', '~> 1.0' end
ブリッジングヘッダーはこんな感じが正解のようです。
// // Use this file to import your target's public headers that you would like to expose to Swift. // #ifndef EZAudio_Swift_EZAudio_Swift_Bridging_Header_h #define EZAudio_Swift_EZAudio_Swift_Bridging_Header_h #import <EZAudio.h> #endif
//
// ViewController.swift
// DemoEZAudio
//
// see:http://qiita.com/Ma-tsu-ne/items/ef5f5360c97219d99d6f
// see:http://cocoadocs.org/docsets/EZAudio/1.0.0/index.html
import UIKit
class ViewController: UIViewController ,EZAudioFileDelegate{
var audioFile:EZAudioFile!
var audioPlot:EZAudioPlot!
var audioPlayer:EZAudioPlayer!
var audioCoreGrph:EZAudioPlotGL!
override func viewDidLoad() {
super.viewDidLoad()
//波形
self.audioPlot = EZAudioPlot(frame: self.view.frame)
self.audioPlot.backgroundColor = UIColor.cyan
self.audioPlot.color = UIColor.purple
self.audioPlot.plotType = EZPlotType.buffer
self.audioPlot.shouldFill = true
self.audioPlot.shouldMirror = true
self.audioPlot.shouldOptimizeForRealtimePlot = true
//ファイルのパスを指定して読み込み
self.openFileWithFilePathURL(filePathURL: NSURL(fileURLWithPath: Bundle.main.path(forResource: "Jump", ofType: "mp3")!))
self.view.addSubview(self.audioPlot)
//再生
self.audioPlayer.pan = 0
self.audioPlayer.volume = 50.0
self.audioPlayer.play()
}
//ファイルの読み込みと波形の読み込み
func openFileWithFilePathURL(filePathURL:NSURL){
self.audioFile = EZAudioFile(url: filePathURL as URL!)
self.audioFile.delegate = self
let buffer = self.audioFile.getWaveformData().buffer(forChannel: 0)
let bufferSize = self.audioFile.getWaveformData().bufferSize
self.audioPlot.updateBuffer(buffer, withBufferSize: bufferSize)
//読み込んだオーディオファイルをプレイヤーに設定して初期化
self.audioPlayer = EZAudioPlayer(audioFile: self.audioFile)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
今回はVan Halenの名曲『Jump』の波形を表示してみます。とりあえず、ファイルをドラッグ&ドロップでプロジェクトに突っ込みます。


できましたー!
技術の進化についていけていないシステムエンジニア。浅く広く、何でも大体はこなせるエンジニアで重宝されてる(つもり)。でもやっぱり特化した武器欲しい。
備忘録として記事を投稿していますが、少しでも誰かの助けになればと思います。
最近はプロジェクトでReact(TypeScript )を触っています。
趣味でギター弾きます。
