[iOS] 방 불이 꺼지면 자동으로 Get Wild 재생, Get Wild 퇴근
http://www.b-ch.com/ttl/index.php?ttl_c=467
조도 센서라 처음에는 아두노를 생각했는데 일반 가정이나 사무실에 아두노가 없어서 iOS로 만들었어요.더 이상 사용하지 않는 아이패드에 프로그램을 넣고 사무실 출입구에 놓으세요.
모니터의 밝기(공간의 밝기)가 임계값보다 낮으면 Get Wild를 시작합니다.또한 손을 뽑았기 때문에 임계값 이하로 밝기가 변경될 때마다 Get Wild가 표시됩니다.
//
// ViewController.swift
// gettlod
//
// Created by ouba on 2016/03/28.
// Copyright © 2016年 oubakiou. All rights reserved.
//
import UIKit
import MediaPlayer
class ViewController: UIViewController {
@IBOutlet var blightnessLabel: UILabel!
var blightness: Float = 0.0
@IBOutlet var thresholdSlider: UISlider!
@IBOutlet var thresholdLabel: UILabel!
var threshold: Float = 0.0
var audio: AVAudioPlayer?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewDidAppear(animated: Bool) {
blightness = Float(UIScreen.mainScreen().brightness)
blightnessLabel.text = String(format: "%.1f", blightness)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(brightnessDidChange(_:)), name: UIScreenBrightnessDidChangeNotification, object: nil)
threshold = thresholdSlider.value*0.1
thresholdLabel.text = String(format: "%.1f", threshold)
thresholdSlider.addTarget(self, action: #selector(thresholdSliderValueDidChange(_:)), forControlEvents: UIControlEvents.ValueChanged)
checkThreshold()
}
internal func brightnessDidChange(notification: NSNotification) {
blightness = Float(UIScreen.mainScreen().brightness)
blightnessLabel.text = String(format: "%.1f", blightness)
checkThreshold()
}
internal func thresholdSliderValueDidChange(sender :UISlider) {
threshold = thresholdSlider.value*0.1
thresholdLabel.text = String(format: "%.1f", threshold)
checkThreshold()
}
internal func checkThreshold() {
if (blightness <= threshold) {
getWildAndTough()
}
}
internal func getWildAndTough() {
let item: MPMediaItem = getMediaItemBySongFreeword("Get Wild")
let url: NSURL = item.valueForProperty(MPMediaItemPropertyAssetURL) as! NSURL
do {
audio = try AVAudioPlayer(contentsOfURL: url, fileTypeHint: nil)
audio!.play()
} catch {
// nothing to do
print(error)
}
}
internal func getMediaItemBySongFreeword(songFreeword : NSString) -> MPMediaItem {
let property: MPMediaPropertyPredicate = MPMediaPropertyPredicate(value: songFreeword, forProperty: MPMediaItemPropertyTitle)
let query: MPMediaQuery = MPMediaQuery()
query.addFilterPredicate(property)
let items: [MPMediaItem] = query.items! as [MPMediaItem]
return items[items.count - 1]
}
}
6시간의 스위프트 경력이 있기 때문에 샘플 코드로 적합하지 않은 쓰기도 포함됐을 수 있다.또 겟와일드라는 타이틀 곡이 터미널에 들어가지 않으면 붕괴될 수 있으니 사세요.실제 운용상의 주의점으로 삼다
수정 내역
제안에 따라 플레이 GetWild를 getWildAndTough로 변경한 복원이 진행됐다.thx @WorldDownTown
추기
겟와일드는 퇴근식 센서 애플리케이션을 쉽게 만들 수 있는 프레임을 만들었기 때문에 아이폰의 치통이 우려된다
Reference
이 문제에 관하여([iOS] 방 불이 꺼지면 자동으로 Get Wild 재생, Get Wild 퇴근), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/oubakiou/items/b9b78b00906415d056b2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)