เครื่องเล่นสื่อแบบเต็มบัฟเฟอร์ซึ่งจะโหลดไฟล์สื่อทั้งหมด


0

ทุกคนรู้ดี (ฉันหมายถึงผู้ใช้มหาอำนาจจำนวนมาก) ว่าแอปพลิเคชั่นมัลติมีเดียทุกประเภทจำเป็นต้องอ่านไฟล์สื่อบางส่วนลงในหน่วยความจำและหลังจากประมวลผลแล้วให้เล่นส่วนนั้นสำหรับผู้ใช้ตัวอย่างเช่นเมื่อคุณต้องการ เล่นไฟล์ mp3 โดยใช้ WMP ก่อนอื่นอ่านข้อมูลจากฮาร์ดดิสก์แล้วเล่นส่วนนั้นและหากคุณตรวจสอบกิจกรรม I / O ของดิสก์ WMP ในช่วงเวลาเล่น (ใช้ Process Hacker หรือ Process Explorer หรือเพียงแค่งาน ตัวจัดการ) คุณจะสังเกตเห็นว่าตามบิตเรตของไฟล์ WMP จะอ่านจากฮาร์ดไดรฟ์

ตอนนี้คำถามของฉันคือ: ทุกคนที่นี่รู้จักเครื่องเล่นสื่อหรือแอพพลิเคชั่นเครื่องเล่นเพลงซึ่งแทนที่จะอ่านจากไฟล์ mp3 โดยตรงจากฮาร์ดไดรฟ์เพียงแค่โหลดไฟล์ทั้งหมดลงในหน่วยความจำและเล่นจากที่นั่น เหมือนกับที่เครื่องเล่นซีดีพกพาเครื่องเก่าของฉันทำเพื่อประหยัดพลังงานฉันได้ทดสอบด้วยวิธีนี้: ฉันใส่ดิสก์แล้วทำให้คิด (เครื่องโง่เล็กน้อย :) ว่าประตูปิดดังนั้นมันจึงสามารถเล่นดิสก์ได้ ระมัดระวังเกี่ยวกับเลเซอร์สิ่ง) จากนั้นฉันกดปุ่มเล่นและฉันสามารถดูสิ่งที่เกิดขึ้นภายใน: มันเริ่มหมุนซีดีของฉันจนกว่าจะพบเพลงแรกจากนั้นก็หมุนอีกครั้งประมาณ 45 วินาทีจนกว่าจะโหลดทั้งหมด เพลง mp3 ในความทรงจำของมัน (มันทำในญี่ปุ่นและฉันจ่ายเงินมากมายเพื่อซื้อมันประมาณ 13 ปีที่แล้วดังนั้นมันจึงมีความทรงจำมากมายบางครั้งฉันต้องการค้นหาชิปเซ็ตหน่วยความจำและใช้ในโครงการอิเล็กทรอนิกส์ของฉัน แต่ฉันก็ไม่สามารถทำร้ายมันได้) และเมื่อเพลงทั้งหมดอยู่ในหน่วยความจำกระแสไฟฟ้าของเครื่องยนต์จะถูกตัด แต่แผ่นซีดียังคงหมุนและสิ่งนี้ วิธีชาร์จแบตเตอรี่เล็กน้อย (ตามคู่มือ) เมื่อเพลงใกล้จะเสร็จ (ประมาณ 10 วินาทีถึงเวลาสิ้นสุด) มันจะสตาร์ทเครื่องยนต์อีกครั้งและขึ้นอยู่กับโปรแกรม (ถ้ามี) สำหรับเส้นทางต่อไป และสิ่งนี้ยังคงดำเนินต่อไปจนกว่าดิสก์หรือโปรแกรมหรือแบตเตอรีจะสิ้นสุดหรือหมดเมื่อเพลงใกล้จะเสร็จ (ประมาณ 10 วินาทีถึงเวลาสิ้นสุด) มันจะสตาร์ทเครื่องยนต์อีกครั้งและตามโปรแกรม (ถ้ามี) ไปตามแทร็กถัดไปและสิ่งนี้จะดำเนินต่อไปจนกระทั่งดิสก์หรือโปรแกรมหรือแบตเตอรีอยู่ สิ้นสุดลงหรือวิ่งออกไปเมื่อเพลงใกล้จะเสร็จ (ประมาณ 10 วินาทีถึงเวลาสิ้นสุด) มันจะสตาร์ทเครื่องยนต์อีกครั้งและตามโปรแกรม (ถ้ามี) ไปตามแทร็กถัดไปและสิ่งนี้จะดำเนินต่อไปจนกระทั่งดิสก์หรือโปรแกรมหรือแบตเตอรีอยู่ สิ้นสุดลงหรือวิ่งออกไป

ฉันรู้ว่านี่จะไม่เป็นประโยชน์สำหรับไฟล์วิดีโอขนาดใหญ่จริง ๆ บนพีซีที่มี RAM ต่ำเช่นพยายามเล่นภาพยนตร์ 8GB โดยใช้เทคนิคนี้ แต่ฉันมั่นใจว่านี่จะไม่เป็นปัญหาสำหรับไฟล์ mp3 ที่น้อยกว่า 50MB หรือแม้แต่ 200MB นอกจากนี้เราไม่ควรลืมว่าเราสามารถแยกไฟล์เช่นแอปพลิเคชันอ่านไฟล์ 5MB ลงในหน่วยความจำเล่นจากนั้นไปอีก 5MB

ดังนั้นมีแอพพลิเคชั่นสำหรับ windows ที่จะโหลดเพลงทั้งหมด (ไฟล์มีเดีย) ในหน่วยความจำหรือไม่? หรือแม้กระทั่งมีวิธีการเขียนโปรแกรมเช่นนี้?

ขอบคุณมากสำหรับเวลาและคำตอบของคุณ คุณไม่สามารถจินตนาการได้ว่าฉันจะขอบคุณคุณมากแค่ไหนถ้าคุณช่วยฉัน

คำตอบ:


2

ตัวถอดรหัสเสียง Nullsoft MPEG สำหรับ Winamp อนุญาตให้ผู้ใช้บัฟเฟอร์ไฟล์ที่ควบคุมได้ฉันตั้งไว้ที่ 16MiB ซึ่งจะโหลดไฟล์เกือบทุกไฟล์ที่ฉันมีกับ RAM โดยตรงก่อนเล่น

ในความเป็นจริงผู้เล่นสื่อส่วนใหญ่มีจำนวน prebuffering และอัตราการอ่านที่แน่นอนอัตราการอ่านอาจเป็นรหัสยาก (พูด 128KiB ต่อครั้ง) หรือตัวแปรตามบิตเรตเฉลี่ยของไฟล์

ผู้เล่นสื่อบางคนอาจใช้การตั้งค่า 'การบัฟเฟอร์เครือข่าย' สำหรับการบัฟเฟอร์เนื้อหาในเครื่องด้วยวิธีที่ดีที่สุดที่จะบอกได้อย่างแน่นอนคือการเพิ่มบัฟเฟอร์และโหลดไฟล์และดูว่าพฤติกรรมการอ่านเปลี่ยนแปลงหรือไม่


มันใช้งานได้ดีมาก ในความเป็นจริงมันอยู่ใกล้กับที่สมบูรณ์แบบ ฉันมี Winamp ที่เล่นไฟล์ mp3 คุณภาพสูงสำหรับฉันและต่างจาก WMP, VLC, XMPlay เป็นเพียงการอ่าน 2.8kB / s (ซึ่งฉันแน่ใจว่าไม่เกี่ยวข้องกับการอ่านไฟล์เสียง) สิ่งนี้เคยเป็น 48kB / s และยิ่งกว่านั้น) มีโอกาสใดที่จะถูกกำจัดเช่นกัน?
Jacob Rabinsun

ฉันยังต้องการที่จะรู้ว่าสิ่งที่คล้ายกันสามารถทำได้สำหรับไฟล์วิดีโอ ด้วยวิธีนี้ฮาร์ดไดรฟ์ไม่จำเป็นต้องทำงานตลอดเวลาดังนั้นมันจะมีเวลาชีวิตอีกต่อไปเล็กน้อยและฉันคิดว่าพลังงานบางอย่างจะถูกบันทึกไว้เช่นกัน ฉันสามารถโหลดไฟล์วิดีโอเกือบทั้งหมดหรืออย่างน้อยก็ส่วนใหญ่ในหน่วยความจำแล้วเล่นจากที่นั่นได้ไหม
Jacob Rabinsun

1
การเปลี่ยนแปลงสำหรับไฟล์วิดีโอสามารถทำได้อย่างง่ายดายกับโปรแกรมโอเพ่นซอร์สเช่น MPC-HC แม้ว่าคุณจะต้องการการตรวจจับหน่วยความจำฟิสิคัลแบบอิสระบางประเภทเพื่อให้แน่ใจว่าระบบปฏิบัติการจะไม่ส่งบัฟเฟอร์บางส่วนไปยังเพจไฟล์ ฉันไม่แน่ใจเกี่ยวกับสิ่งบิตเรตต่ำมันอาจอ่านจากไพพ์ที่มีชื่อและแสดงเป็นดิสก์ IO ฉันอ่านค่าเฉลี่ย 2KB / s จาก ntdll.dll ประมาณ 2 นาทีจากนั้นก็หยุด
Richie Frame

0

ฉันคิดว่าการตั้งค่า (อธิบายไว้ที่นี่http://forums.winamp.com/showthread.php?t=182563 ) เป็นการกำหนดค่าตามความชอบ> ปลั๊กอิน> อินพุต> อินพุตถอดรหัสเสียง Nullsoft MPEG> บัฟเฟอร์ไฟล์แบบเต็ม (Winamp 5.622)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.