teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

ソースを対象の部分に限定しました。

2019/01/07 05:38

投稿

flarefactory
flarefactory

スコア6

title CHANGED
@@ -1,1 +1,1 @@
1
- スヌーズの音源を変更したいのです
1
+ 音源をカテゴリ別に分けてランダムに再生したい。
body CHANGED
@@ -1,109 +1,9 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- スヌーズの度にランダムに流れる音源を、選択した音源によってグループ別けしたいと考えています。エラーは出ないのですが、何を選択しても最後のグループしか流れません。
3
+ 選択したカテゴリによって音源をグループ別けしたいと考えています。エラーは出ないのですが、何を選択しても最後のグループしか流れません。
4
- 本当はランダムではなく順番に流れるのが理想なのですが、それも判っていない初心者です。
5
4
  ### 該当のソースコード
6
5
  ```swift-言語名
7
6
 
8
- import UIKit
9
- import Foundation
10
- import AudioToolbox
11
- import AVFoundation
12
-
13
- @UIApplicationMain
14
- class AppDelegate: UIResponder, UIApplicationDelegate, AVAudioPlayerDelegate, AlarmApplicationDelegate{
15
-
16
-
17
- var window: UIWindow?
18
- var audioPlayer: AVAudioPlayer?
19
- let alarmScheduler: AlarmSchedulerDelegate = Scheduler()
20
- var alarmModel: Alarms = Alarms()
21
-
22
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
23
- var error: NSError?
24
- do {
25
- try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
26
- } catch let error1 as NSError{
27
- error = error1
28
- print("セッションを設定できませんでした。error:(error!.localizedDescription)")
29
- }
30
- do {
31
- try AVAudioSession.sharedInstance().setActive(true)
32
- } catch let error1 as NSError{
33
- error = error1
34
- print("アクティブなセッションができませんでした。error:(error!.localizedDescription)")
35
- }
36
- window?.tintColor = UIColor.blue
37
-
38
- return true
39
- }
40
-
41
- //フォアグラウンドでアプリケーションを使用するときにローカル通知を受け取る
42
- func application(_ application: UIApplication, didReceive notification: UILocalNotification) {
43
-
44
- //警告ウィンドウを表示する
45
- let storageController = UIAlertController(title: "ナマケモノめっ!", message: "目醒めるべきか 鍛えるか", preferredStyle: .alert)
46
- var isSnooze: Bool = false
47
- var soundName: String = ""
48
- var index: Int = -1
49
- if let userInfo = notification.userInfo {
50
- isSnooze = userInfo["snooze"] as! Bool
51
- soundName = userInfo["soundName"] as! String
52
- index = userInfo["index"] as! Int
53
- }
54
-
55
- playSound(soundName)
56
- //スヌーズのスケジュール通知
57
- if isSnooze {
58
- let snoozeOption = UIAlertAction(title: "鍛えるっ!", style: .default) {
59
- (action:UIAlertAction)->Void in self.audioPlayer?.stop()
60
- AudioServicesRemoveSystemSoundCompletion(kSystemSoundID_Vibrate)
61
- self.alarmScheduler.setNotificationForSnooze(snoozeMinute: 1, soundName: soundName, index: index)
62
- }
63
- storageController.addAction(snoozeOption)
64
- }
65
- let stopOption = UIAlertAction(title: "目醒めるっ!", style: .default) {
66
- (action:UIAlertAction)->Void in self.audioPlayer?.stop()
67
- AudioServicesRemoveSystemSoundCompletion(kSystemSoundID_Vibrate)
68
- self.alarmModel = Alarms()
69
- self.alarmModel.alarms[index].onSnooze = false
70
- //UIを変更する
71
- var mainVC = self.window?.visibleViewController as? MainAlarmViewController
72
- if mainVC == nil {
73
- let storyboard = UIStoryboard(name: "Main", bundle: nil)
74
- mainVC = storyboard.instantiateViewController(withIdentifier: "Alarm") as? MainAlarmViewController
75
- }
76
- mainVC!.changeSwitchButtonState(index: index)
77
- }
78
-
79
- storageController.addAction(stopOption)
80
- window?.visibleViewController?.navigationController?.present(storageController, animated: true, completion: nil)
81
- }
82
-
83
- //アプリがバックグラウンドでスヌーズ通知するハンドラ
84
- func application(_ application: UIApplication, handleActionWithIdentifier identifier: String?, for notification: UILocalNotification, completionHandler: @escaping () -> Void) {
85
- var index: Int = -1
86
- var soundName: String = ""
87
- if let userInfo = notification.userInfo {
88
- soundName = userInfo["soundName"] as! String
89
- index = userInfo["index"] as! Int
90
- }
91
- self.alarmModel = Alarms()
92
- self.alarmModel.alarms[index].onSnooze = false
93
- if identifier == Id.snoozeIdentifier {
94
- alarmScheduler.setNotificationForSnooze(snoozeMinute: 1, soundName: soundName, index: index)
95
- self.alarmModel.alarms[index].onSnooze = true
96
- }
97
- completionHandler()
98
- }
99
-
100
- //登録されたすべてのNSNotificationをデバッグ用に出力する
101
- func application(_ application: UIApplication, didRegister notificationSettings: UIUserNotificationSettings) {
102
-
103
- print(notificationSettings.types.rawValue)
104
- }
105
-
106
-
107
7
  //AlarmApplicationDelegateプロトコル
108
8
  func playSound(_ soundName: String) {
109
9
 
@@ -199,5 +99,5 @@
199
99
 
200
100
  ### 試したこと
201
101
 
202
- playSound(soundName)を複数にしたりsoundNameを増やしてみたりしたのですが、どうしても記述した最後のグループしか流れません。初心者なため質問の仕方もわからず本当に申し訳ありませんが、どなたかご指南いただければとてもありがたいです。
102
+ どうしても記述した最後のグループしか流れません。初心者なため質問の仕方もわからず本当に申し訳ありませんが、どなたかご指南いただければとてもありがたいです。
203
103
  どうかよろしくお願いします。

1

swiftの記述を訂正しました

2019/01/07 05:38

投稿

flarefactory
flarefactory

スコア6

title CHANGED
File without changes
body CHANGED
@@ -3,9 +3,8 @@
3
3
  スヌーズの度にランダムに流れる音源を、選択した音源によってグループ別けしたいと考えています。エラーは出ないのですが、何を選択しても最後のグループしか流れません。
4
4
  本当はランダムではなく順番に流れるのが理想なのですが、それも判っていない初心者です。
5
5
  ### 該当のソースコード
6
+ ```swift-言語名
6
7
 
7
- xcode swift4
8
-
9
8
  import UIKit
10
9
  import Foundation
11
10
  import AudioToolbox
@@ -196,8 +195,8 @@
196
195
  }
197
196
  }
198
197
 
198
+ ```
199
199
 
200
-
201
200
  ### 試したこと
202
201
 
203
202
  playSound(soundName)を複数にしたりsoundNameを増やしてみたりしたのですが、どうしても記述した最後のグループしか流れません。初心者なため質問の仕方もわからず本当に申し訳ありませんが、どなたかご指南いただければとてもありがたいです。