幻魔ナイトブログ

主に絵、音楽、プログラミングなどについて書きます。

Pythonistaでレコーダーを作ってみよう!

f:id:MahiroN:20200823135552p:plain

概要

皆さんこんにちは!
今回はpythonistaを使って録音アプリを開発してみましょう!   今回はUIを用いて録音と録音の停止をしてみましょう。  


参考にしたサイト


実際のコード

実際に開発したコードです。

  • audio.py
# this is based in the audio recording example provided by omz (Ole Zorn)
from objc_util import *
import os
import ui
global started_recording
global IsRecord
IsRecord = 0
global recorder
recorder = None

def record(sender):
    AVAudioSession = ObjCClass('AVAudioSession')
    NSURL = ObjCClass('NSURL')
    AVAudioRecorder = ObjCClass('AVAudioRecorder')
    shared_session = AVAudioSession.sharedInstance()
    category_set = shared_session.setCategory_error_(ns('AVAudioSessionCategoryPlayAndRecord'), None)
    
    settings = {ns('AVFormatIDKey'): ns(1633772320), ns('AVSampleRateKey'):ns(44100.00), ns('AVNumberOfChannelsKey'):ns(2)}
    
    output_path = os.path.abspath('Recording.m4a')
    out_url = NSURL.fileURLWithPath_(ns(output_path))
    global recorder
    recorder = AVAudioRecorder.alloc().initWithURL_settings_error_(out_url, settings, None)
    
    global started_recording
    started_recording = recorder.record()
    
    global IsRecord
    IsRecord = 1

    textview = sender.superview['label1']
    textview.text = '録音中'

def stop(sender):
    textview = sender.superview['label1']
    textview.text = '録音を終了します'
    global IsRecord
    if IsRecord:
        recorder.stop()
        recorder.release()
        IsRecord = 0
    
v = ui.load_view()
v.present('sheet')
  • audiuo.pyui
    • 下の画像のように設定します。 f:id:MahiroN:20190929004106p:plain f:id:MahiroN:20190929004150p:plainf:id:MahiroN:20190929004207p:plain

今回は以上!めちゃくちゃプロトタイプだけどこれから改変予定!!

お問合わせはこちら