บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ พื้นฐาน java

Java กับ Audio library เพื่อการ mix เสียง

รูปภาพ
  การ mix เสียงร้อง ให้มีมิติและอารมณ์มากขึ้น มักจะใช้เทคนิค “Duplicate Track” — คือการคัดลอกเสียงร้องเดิมแล้วปรับแต่งให้แตกต่าง เช่น pitch ต่ำกว่า, เสียงช้า, หรือเพิ่มเอฟเฟกต์ reverb เป็นต้น ในบทความนี้ เราจะใช้ Java Audio Library (เช่น javax.sound.sampled, TarsosDSP, หรือ JSyn) เพื่อทำการ: โหลดไฟล์เสียง (เช่น WAV) สร้างสำเนา (duplicate) ปรับ pitch ลง 2 octaves (≈ ลดความถี่ลง 4 เท่า) export ออกมาเป็น track ใหม่สำหรับนำไป mix ต่อ 🧰 เครื่องมือที่ใช้ TarsosDSP — ไลบรารี open source สำหรับ audio processing ใน Java https://github.com/JorenSix/TarsosDSP Java Sound API (javax.sound.sampled) — สำหรับอ่าน/เขียนไฟล์เสียง ติดตั้งผ่าน Maven: <dependency>   <groupId>be.tarsos</groupId>   <artifactId>TarsosDSP</artifactId>   <version>2.4</version> </dependency> ตัวอย่างโค้ด: Duplicate Track และลดคีย์ลง 2 Octaves import be.tarsos.dsp.*; import be.tarsos.dsp.io.jvm.AudioDispatcherFactory; import be.tarsos.d...
รูปภาพ
 อัปเดตค่าเงินบาทแบบเรียลไทม์ด้วย Spring Boot + SSE + Frankfurter API 🔎 Frankfurter คืออะไร? Frankfurter.app เป็นบริการ  ฟรี  ที่ให้ข้อมูล  อัตราแลกเปลี่ยนสกุลเงินรายวัน (Exchange Rates) โดยดึงข้อมูลจาก  ธนาคารกลางยุโรป (European Central Bank) จุดเด่นคือ: ✅ ใช้งานฟรี ไม่ต้องสมัคร ไม่ต้องมี API key ✅ รองรับหลายสกุลเงิน เช่น USD, THB, EUR, JPY ✅ ได้ข้อมูลในรูปแบบ JSON อ่านง่าย ✅ เหมาะสำหรับการทดสอบ หรือทำโปรเจกต์สาธิต ตัวอย่างการเรียก API: https://api.frankfurter.app/latest? from =USD& to =THB ผลลัพธ์ที่ได้: { "amount" : 1.0 , "base" : "USD" , "date" : "2025-10-15" , "rates" : { "THB" : 36.74 } } หมายความว่า “1 ดอลลาร์สหรัฐ (USD) = 36.74 บาท (THB)” 🧭 เป้าหมายของเรา เราจะสร้างเว็บเล็ก ๆ ที่  แสดงค่าเงินบาทแบบเรียลไทม์ โดยไม่ต้องกด refresh เอง แนวคิดคือใช้เทคโนโลยีที่ชื่อว่า  SSE (Server-Sent Events) ซึ่งจะให้ฝั่ง Server ส่งข้อมูลใหม่มาที่หน้าเว็บโดยอัตโนมัติ ⚙️ เครื่องมือที่ใช้ เครื่องมื...
 คู่มือ Java ฉบับทันสมัย (อัปเดตล่าสุดปี 2025) บทนำ Java ยังคงเป็นภาษายอดนิยมที่ได้รับความนิยมอย่างต่อเนื่องตั้งแต่ยุค 1990 จนถึงปัจจุบัน ในปี 2025 Java ได้ก้าวหน้าอย่างมากทั้งด้านภาษาหลักและเครื่องมือสนับสนุน ล่าสุด Java 24 ได้เปิดตัวออกมาแล้ว และ Java 21 เป็นเวอร์ชัน LTS (Long-Term Support) ที่แนะนำให้ใช้งานสำหรับระบบจริงในระยะยาว บทความนี้จะช่วยให้คุณเข้าใจภาพรวมของ Java เวอร์ชันล่าสุด รวมถึงฟีเจอร์เด่น โครงสร้างภาษาที่ควรรู้ และแนวทางการพัฒนา Java ยุคใหม่ ภาพรวมเวอร์ชัน Java ล่าสุด เวอร์ชัน สถานะ วันเปิดตัว Java 24 เวอร์ชันล่าสุด มีนาคม 2025 Java 21 เวอร์ชัน LTS ล่าสุด กันยายน 2023 Java 17 LTS รุ่นก่อนหน้า กันยายน 2021 Java 11 LTS เก่า กันยายน 2018 โครงสร้างพื้นฐานของภาษา Java คลาสและอ็อบเจกต์ : โครงสร้างหลักของโปรแกรม Java Primitive Types : int, double, char, boolean เป็นต้น Control Statements : if, switch, while, for, do-while Methods : การแยกโค้ดเป็นหน่วยที่นำกลับมาใช้ซ้ำได้ Array และ Collection : จัดเก็บและจัดการข้อมูลหลายรายการ Exception Handling : try-catch-finally OOP Co...
การใช้งาน RPC (Remote Procedure Call) ด้วย Java พร้อมตัวอย่างเกมออนไลน์ (ต่อ) เพื่อให้สามารถอัปเดตสถานะของผู้เล่นคนอื่นในเกมออนไลน์ผ่าน RPC ได้ คุณสามารถใช้ฟีเจอร์  Server Streaming RPC  ของ gRPC เพื่อให้เซิร์ฟเวอร์ส่งข้อมูลสถานะของผู้เล่นแบบเรียลไทม์ไปยังไคลเอนต์ที่กำลังเชื่อมต่ออยู่ ตัวอย่างด้านล่างแสดงวิธีการเพิ่มฟีเจอร์นี้ในเกม: อัปเดตไฟล์  game.proto เพิ่มเมธอดสำหรับการสตรีมสถานะของผู้เล่น: syntax = "proto3" ; service GameService { rpc JoinGame (JoinRequest) returns (JoinResponse) ; rpc SendMove (MoveRequest) returns (MoveResponse) ; rpc StreamPlayerUpdates (PlayerUpdateRequest) returns (stream PlayerUpdateResponse) ; } message JoinRequest { string playerName = 1 ; } message JoinResponse { string welcomeMessage = 1 ; } message MoveRequest { string playerName = 1 ; string move = 2 ; } message MoveResponse { string result = 1 ; } message PlayerUpdateRequest { string playerName = 1 ; // ชื่อผู้เล่นที่ต้อง...