เกี่ยวกับ seekbar ช่วยหน่อยนะครับ

เริ่มโพสต์โดย phaishow, 17 พ.ค. 2009, 16:26 น.

0 สมาชิก และ 1 บุคคลทั่วไป กำลังเปิดอ่านโพสต์นี้

phaishow

คือ ผมจะทำ music player สักตัว เล่นเฉพาะไฟล์ audio(mp3,wma) ตอนนี้เพิ่งเริ่มต้น

ทำได้แค่ ปุ่ม play / pause เองครับ

แต่ไม่ว่า จะไปหาข้อมูลที่ไหน ๆ ก็ไม่มีที่เกี่ยวกับ seekbar เลย

ผมยังจับต้น ชนปลายไม่ถูกเลย ไม่รู้จะเริ่มต้นที่ตรงไหนอ่ะครับ

ใครทำเป็น ช่วยแนะนำด้วยนะครับ ขอบคุณล่วงหน้าครับ
กำลังทำ music player อยูครับ
last update :
•play/puase fuction
•progress bar (seekbar cannot seek)
•valume bar

กากก่อเกรียนนู้บ

จะรับตัวนี้ไปพิจารณาไหมครับ :42:
แนบมาแล้วนะครับ ลองโหลดไปแกะดู :12:

(แก้เพลงที่จะเล่นที่ไฟล์ text นะครับ)

iannnnn


กากก่อเกรียนนู้บ

#3
ขอเบิ้ลหน่อยนะครับ จะได้อ่านง่ายๆ หน่อย
:31: พี่แอนตัดหน้าพอดี ค่อยยังชั่ว..

ถ้าจะให้แนะนำว่าเริ่มตรงไหน ตรงนี้ครับ
- onPress
- คำนวณเปอร์เซ็นต์จากตำแหน่งที่เมาส์กำลังคลิกอยู่ที่ seekbar
- เอาไปเทียบกับความยาวเพลง

เช่น สมมติว่าคลิกที่ตรงกลางของ seekbar ก็จะคำนวณได้ 50 เปอร์เซ็นต์..
ก็เอา 50 เปอร์เซ็นต์ * ความยาวเพลง = ตำแหน่งตรงกลางเพลง

seekBar.onPress = function(){
 var positionPercentage = this._xmouse/this._width;
 sound.stop();
 sound.start( sound.duration * positionPercentage / 1000 ); //หาร 1000 เพื่อแปลง milliseconds เป็น seconds ครับ
}


คร่าวๆ ก็ประมาณนี้ครับ



อ้างคำพูดจาก: ☼ อภิมหาแอน ☼ เมื่อ 17 พ.ค. 2009, 19:13 น.
:27: แหมๆ จานก่อ
:31: อะไรพี่.. ไฟล์เก่าแก่อะครับ เขียนไว้ 2-3 ปีแล่ว

Bellbells

ขอโหลดไปศึกษาดูก่อนนะครับ  :56: :45:

phaishow

#5
กำ - -" แฟลชไม่ขึ้นซะงั้น

/* ลืมบอกไป ผมโพล่มาเล่นแฟลช ก็ as3 เลยครับ

as2 งง มากมาย -.-
กำลังทำ music player อยูครับ
last update :
•play/puase fuction
•progress bar (seekbar cannot seek)
•valume bar

กากก่อเกรียนนู้บ

อ๋อ งั้นยิ่งง่ายครับ เพราะช่วงนี้ผมก็จับแต่ 3 ไม่ได้เล่น 2 เลย :30:
งั้นเอาตัวอย่าง 3 ไปดูนะครับ

http://files.korstudioxd.com/musicplayer_v2.52.rar

เสร็จแล้วให้ดูในโฟลเดอร์ lib\FLAMP.as
แล้วหาฟังก์ชั่นชื่อ SelectTime ครับ หน้าตาแบบนี้

public function SelectTime(time:Number):void {
if (PlayStatus > 0) {
target.sc.stop();
trace(target.s.length);
target.sc = target.s.play(time);
target.sc.soundTransform = s_transform;
target.sc.addEventListener(Event.SOUND_COMPLETE, target.onSoundCompleted);
if (PlayStatus == 2) {
Pause(target.sc);
}
}
}


แล้วก็มันจะมีการ addEventListener ให้กับตัว Seek bar ที่ไฟล์ lib\ButtonListeners.as ครับ
(ตอนนั้นผม OOP ห่วยแตกมาก)
หาดูฟังก์ชั่นนี้ครับ SK_doProgress

function SK_doProgress(e:MouseEvent) {
if (e.buttonDown) {
var position:Number = e.target.mouseX*_root.root.s.length/e.target.width;
_root.SelectTime(position); //_root เป็นตัวแปรที่ผมตั้งขึ้น เก็บที่อยู่ของ stage ไว้
}
}


ฟังก์ชั่นนี้จะเป็น listener ให้กับ seek bar ครับ เมื่อมีการกดลงไปที่ seek bar (รวมถึงกดค้างแล้วถูไป-มา)
มันก็จะตำแหน่งปัจจุบัน (position) ว่าเพลงควรเริ่มเล่นที่ตำแหน่งไหน
ก็คือ หาค่าเปอร์เซ็นต์ครับ สังเกตว่าจะมี  e.target.mouseX/e.target.width ตัวนี้จะได้เป็นค่าทศนิยมระหว่าง 0 ถึง 1
มันคือค่าอัตราส่วนครับ
จากนั้นก็เอาไปคูณกับความยาวเพลง _root.root.s.length (ตัวแปร s อยู่ที่ root ของ stage) ก็จะได้
ตำแหน่งของเพลงที่ต้องเล่นในเวลาที่คลิกครับ

แล้วมันก็จะส่งค่าที่คำนวณได้ ไปที่ฟังก์ชั่น SelectTime เพื่อสั่งให้เสียงเล่นอีกที

โส-เล้ง !!!

....(= - =")..   .3dsMax  .  ..(๐ Q")<<<<<..

ej_sing

(รวมถึงกดค้างแล้วถูไป-มา)  :04: คำอธิบายแบบนี้ ได้อารมณ์มากจานก่อ  :30:

phaishow

-.-

ขอบคุณมาก ๆ ครับ  :04:

ว่าแต่..

โฟลเดอร์ lib มันหนีไปไหนแล้วอ่าครับ  :08:

ผมหาไม่เจอ  :09:
กำลังทำ music player อยูครับ
last update :
•play/puase fuction
•progress bar (seekbar cannot seek)
•valume bar

Bellbells


กากก่อเกรียนนู้บ

 :55: อ้าว ไม่อยู่ในนั้นเหรอครับ
เอ่อ ผมอัพใหม่ละครับ กดที่ลิงค์เดิมได้เลยครับ

:05: ขอโทษครับ แง

phaishow

คือ ผมลอง debug ดูแล้ว มัน error ครับ

1087: Syntax error: extra characters found after end of program.

on (release) {


ปล. หรือผมต้องแก้ไขอะไรเพิ่มเติมก่อน..
ปล2. ผม debug ไฟล์ musicplayer_v2.52.fla เลยครับ
กำลังทำ music player อยูครับ
last update :
•play/puase fuction
•progress bar (seekbar cannot seek)
•valume bar

กากก่อเกรียนนู้บ

 :55: เอ๊ะ มาได้ไงอะ อันนั้นมัน ActionScript 2 อะครับ ผมเปิดดูก็คอมไพล์ได้นะครับ ไม่เจอเลย
:05: อะไรกันนี่

phaishow

กำลังทำ music player อยูครับ
last update :
•play/puase fuction
•progress bar (seekbar cannot seek)
•valume bar

SMF 2.1.7 © 2026, Simple Machines