質問編集履歴

2

追記2

2017/08/20 08:20

投稿

mitci
mitci

スコア37

test CHANGED
File without changes
test CHANGED
@@ -112,7 +112,13 @@
112
112
 
113
113
 
114
114
 
115
- ですが、あくまでも **タイムラグが少なくなった** ということで根本の解決にはなっていない気がします・・・実際、チェックしてみるとぎりぎり目測のできる範疇でのタイムラグがあります。本当にぎりぎり、気にしなくてもいいのでは、という範疇ですが・・・
115
+ ですが、あくまでも **タイムラグが少なくなった** ということで根本の解決にはなっていない気がします・・・
116
+
117
+ timerを0.001秒にし、上記コードにしても、
118
+
119
+ ごくわずかなズレは残り、また、他のアプリなどを起動し、端末に負担がかかっているときはよりズレて表示されているような気がします・・・
120
+
121
+
116
122
 
117
123
  どうかもう一度、お力添えをお願いいたします・・・
118
124
 

1

再考察・・・

2017/08/20 08:20

投稿

mitci
mitci

スコア37

test CHANGED
File without changes
test CHANGED
@@ -74,6 +74,62 @@
74
74
 
75
75
 
76
76
 
77
+ ###追記
78
+
79
+ 2017.8.20
80
+
81
+ 再生時間と同期しているか、というチェックの方法はアプリの画面を起動し、上にコントロールセンターのオーディオコントロールの画面を表示してチェックしています。
82
+
83
+ そのため、iOSのシステム的には小数点以下を切り捨てにして表示していると思うので、
84
+
85
+ ``Int(player.currentPlaybackTime)``として切り捨てても問題ないのでは、と考えました。
86
+
87
+ また、剰余計算に``truncatingRemainder(dividingBy: 60)``や``sec - (sec / 60) * 60``を使っても、``mm:ss``のString型にする方法がわからず・・・
88
+
89
+ 無理に代入すると``01:14532...``という形になってしまいました・・・
90
+
91
+
92
+
93
+ ---
94
+
95
+ 現時点では一度``count``に``player.currentPlaybackTime``代入せず、直接``Int()``内に入れることでタイムラグがほぼ解消しました。
96
+
97
+ ```swift
98
+
99
+ if player.nowPlayingItem != nil {
100
+
101
+ let min = Int(player.currentPlaybackTime) / 60
102
+
103
+ let sec = Int(player.currentPlaybackTime.truncatingRemainder(dividingBy: 60))
104
+
105
+ //let sec = Int(player.currentPlaybackTime) % 60よりもなぜかラグが少ないです。
106
+
107
+ timeLabel.text = String(format: "%02d:%02d", min, sec)
108
+
109
+ }
110
+
111
+ ```
112
+
113
+
114
+
115
+ ですが、あくまでも **タイムラグが少なくなった** ということで根本の解決にはなっていない気がします・・・実際、チェックしてみるとぎりぎり目測のできる範疇でのタイムラグがあります。本当にぎりぎり、気にしなくてもいいのでは、という範疇ですが・・・
116
+
117
+ どうかもう一度、お力添えをお願いいたします・・・
118
+
119
+
120
+
121
+ ###再考察
122
+
123
+ ``String(format:)``の形にも慣れていないので、そこでも問題があるのだろうか、とも考えています。
124
+
125
+ ```swift
126
+
127
+ timeLabel.text = String(format: "%02d:%02d", Int(min), Int(sec))
128
+
129
+ ```
130
+
131
+ としても、ラグはあったのですが・・・。
132
+
77
133
  ###補足情報(言語/FW/ツール等のバージョンなど)
78
134
 
79
135
  swift3 xcode8