着信音を再生するためのアプリを作成していますが、毎回再生された着信音の現在の時刻をミリ秒単位で知りたいです。
CMTime cTime = player_.currentTime; float currentTime = cTime.value / cTime.timescale;
ここでのcurrentTimeは、秒単位の値を取得します。正確なcurrentTime値をミリ秒単位で取得するにはどうすればよいですか?
着信音を再生するためのアプリを作成していますが、毎回再生された着信音の現在の時刻をミリ秒単位で知りたいです。
CMTime cTime = player_.currentTime; float currentTime = cTime.value / cTime.timescale;
ここでのcurrentTimeは、秒単位の値を取得します。正確なcurrentTime値をミリ秒単位で取得するにはどうすればよいですか?
現在の時刻を秒単位で取得する方法があります。その1000倍の時間がかかり、ミリ秒があります。
Float64 dur = CMTimeGetSeconds([player currentTime]);
Float64 durInMiliSec = 1000*dur;
悲しいことに、それをとして使用する必要があります。そうしないと、その結果をとして使用できませんfloat
。Float64
CMTime
受け入れられた答えは詳細を失っていると思います。ミリ秒を取得するためのより正確な方法は次のとおりです。
let seconds : Double = Float64(time.value * 1000) / Float64(time.timescale)
最初に秒に変換すると、精度が低下します。
CMTime.valueとCMTime.timescaleはどちらも整数であるため、コードから判断すると、結果は丸められ、正確なタイムスタンプは取得されません。代わりにCMTimeGetSecondsを試してください。