Trong phương thức Android getPlaybackHeadPosition() của AudioTrack lớp trả về vị trí đầu phát lại được biểu thị trong khung, giá trị tương đương của nó trong vài nghìn giây là bao nhiêu?Chuyển đổi khung hình thành mili giây trong android
13
A
Trả lời
20
tôi đoán rằng nó sẽ là
(track.getPlaybackHeadPosition()/track.getSampleRate()) * 1000.0
Nói cách khác, số lượng khung hình chơi chia cho số khung hình mỗi giây. Sau đó, bạn nhân kết quả với 1000 để nhận được mili giây.
Một khung bao gồm một mẫu cho mỗi kênh và do đó phải tương đương với tỷ lệ mẫu.
Ví dụ, nếu getPlaybackHeadPosition()
lợi nhuận 8654
và getSampleRate()
lợi nhuận 8000
thì thời gian kể từ khi bắt đầu theo dõi sẽ (8654/8000) * 1000
hoặc 1081.75ms
. (Giả sử nổi điểm số học)
0
Câu trả lời bởi @Nike là đúng.
Nhưng có một vấn đề.
Nếu chúng ta gọi là giá trị MediaExtractor.seekTo
phương pháp, AudioTrack.getPlaybackHeadPosition()
lợi nhuận tích lũy.
MediaExtractor.getSampleTime()/1000
là các ms phù hợp với vị trí hiện tại.
Bạn có thể xem thử!
Có, bạn đã đúng. –
Hãy thoải mái chấp nhận câu trả lời rồi :) – Nick
ví dụ, nếu âm thanh có 8000 mẫu/giây, (track.getPlaybackHeadPosition()/8) cung cấp cho bạn vị trí đầu phát lại hiện tại trong vài giây. –