最終更新日: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 )を触っています。
趣味でギター弾きます。