[英]Java Midi Receiver and Calendar Time in Millis
我目前使用的Receiver
類從Midi鍵盤接收Midi事件。
對於每個事件, send()
方法都會返回一些信息以及MidiEvent的timestamp
。
當我創建一個Calendar
實例和getTimeInMillis()
我得到的數字與Receiver's
時間戳完全不同。 這兩個值的差每次都會改變,因此我知道這不僅僅是一個恆定值。
有沒有辦法通過Receiver's
send()
方法隨時獲取Receiver's
時間戳值?
我的意思是,使用與Receiver's
時間戳相同的時間刻度的方法獲得一個時間戳。
我相信您可能在誤解中進行操作Receiver.send()
期望的時間戳值以微秒為單位 ,而不是Calendar
那樣的毫秒。 這意味着您的系數是1000,這似乎是“不斷變化的價值”。
我不知道您是否只想降低時間戳的分辨率,還是使用微秒。 這將取決於您的應用程序的確切性質,您在消息中獲取的數據以及您打算如何使用它們。
編輯:
這是基於以下假設:您正在接收數據,而不是在填充時間戳值。
如果需要保留分辨率,可以使用以下選項:
Date
的java.sql.Timestamp
子類。 這可以存儲低至納秒的分辨率(比您所需的分辨率還高)。 但是,該庫中的所有標准日期實用程序都有一些奇怪的行為,並且名稱空間可能不太理想。 Calendar
和Date
是標准庫的一部分。 如果要分發代碼,則必須期望人們使用您的標准庫版本。 由於許多原因,這是不可取的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.