Code Music Player Xịn Xò Từ A-Z | Thực hành JavaScript | Code trình phát nhạc

  Рет қаралды 156,876

F8 Official

F8 Official

Күн бұрын

Пікірлер
@F8VNOfficial
@F8VNOfficial 3 жыл бұрын
*Giải thích cách hoạt động của querySelector.bind(document): kzbin.info/www/bejne/bJuck2WVephngK8 Nhiệm vụ còn lại dành cho các bạn: 1. Hạn chế tối đa các bài hát bị lặp lại 2. Fix lỗi khi tua bài hát, click giữ một chút sẽ thấy lỗi, vì event updatetime nó liên tục chạy dẫn tới lỗi 3. Fix lỗi khi next tới 1-3 bài đầu danh sách thì không “scroll into view” 4. Lưu lại vị trí bài hát đang nghe, F5 lại ứng dụng không bị quay trở về bài đầu tiên 5. Thêm chức năng điều chỉnh âm lượng, lưu vị trí âm lượng người dùng đã chọn. Mặc định 100%
@thang8617
@thang8617 3 жыл бұрын
e chỉ biết fix cái số 2 😑
@nguyenphuongnam1232
@nguyenphuongnam1232 3 жыл бұрын
@@thang8617 chia sẽ cách với bạn ơi
@baoduy7198
@baoduy7198 3 жыл бұрын
@@thang8617 quan tâm
@thang8617
@thang8617 3 жыл бұрын
Đơn giản mà. Đầu tiên tạo 1 biến boolean tên là isTimeupdate gán bằng true, sau đó đưa biến đó vào phần if trong progress.ontimeupdate. Tiếp theo tạo một sự kiện khi người dùng chạm vào thanh progress. Khi người dùng chạm vào sẽ gán isTimeupdate bằng false. Sau đó gán lại biến isTimeupdate bằng true trong progress.onchange khi người dùng đã tua xong thôi, hihi
@juhandvan
@juhandvan 3 жыл бұрын
@@thang8617 Cái chức năng tua, sao mình test bằng cách fix giá trị mà nó vẫn không hoạt động nhỉ: progress.onchange = function (e) { audio.currentTime = 100; }; Mình nghĩ không phải do sự kiện audio.ontimeupdate vì mình comment nó lại rồi vẫn không được, không hiểu lý do là gì
@tripham8864
@tripham8864 3 жыл бұрын
Nhờ học khoá JavaScript của a, e có đủ kiến thức tự tin để học tiếp react. Respect
@angminhuc6674
@angminhuc6674 3 жыл бұрын
Cảm ơn anh rất nhiều ạ, nhờ có các khoá học của anh mà em đã có thể tự ngồi mày mò được các fw như React với Vue và em cũng mới xin được làm thực tập ở một công ty, ra tết em sẽ đi làm. Chúc anh và gia đình có một năm mới dồi dào sức khoẻ, an khang thịnh vượng, vạn sự như ý ạ.
@angminhuc6674
@angminhuc6674 2 жыл бұрын
@@2eem đúng r bạn, bạn cứ học kỹ từng video một và hiểu được những gì a Sơn nói thì thoải mái đi làm bạn nhé.
@thanhdanhhonguyen3310
@thanhdanhhonguyen3310 2 жыл бұрын
Mình đang học java scrip ở f8 mà chưa thấy a sơn ra clip hướng dẫn thực tế để áp dụng
@locit9046
@locit9046 3 жыл бұрын
cuối cùng thì sau gần 5 tháng thì cũng tới được phần này rồi hơi chậm nhưng thật vui vì bản thận đã lỗ lực hết mình cảm ơn anh Sơn Đặng thật là nhiều ạ
@igdev6095
@igdev6095 3 жыл бұрын
1:05:04 cho các b ko hiểu chỗ while đó, vd lần đầu gọi hàm random thì newIndex nó ra 8, sau đó nó chạy xún "while" để kiểm tra thì 8 khác currentIndex là 0 nên nó thoát vòng lặp, nhưng vd lần gọi hàm tiếp theo nó ra 0 thì chạy xún vòng "while" thỏa điều kiện "0 === 0" thì nó chạy lên hàm "do" lần nữa, chạy khi nào nó ra khác điều kiện là 0 thì thoy :D
@udemytiengviet956
@udemytiengviet956 2 жыл бұрын
chỗ này có bug đó bạn , lúc hủy random thì nó vẫn dính 1 index của Do nữa rồi mới hoàn toán đúng logic . Bạn test lại xem :v
@htuanqn
@htuanqn 4 ай бұрын
@@udemytiengviet956 là sao bạn ?? "do while" là chạy xong rồi mới kiểm tra, thì đương nhiên nó phải dính rồi nó mới kiểm tra chứ ??
@BDCCNVuMinhQuang
@BDCCNVuMinhQuang 3 жыл бұрын
Theo e là khi anh code HTML CSS thì a cũng quay lại quá trình code rồi up vào list HTML a ạ, học như vậy e thấy thú vị vì mình làm hết được project
@F8VNOfficial
@F8VNOfficial 3 жыл бұрын
Thank em nha
@babayaga3303
@babayaga3303 Жыл бұрын
Mới đó mà gần 2 năm kỉ niệm đi thực tập rồi, kinh nghiệm thực tế cũng được 1,5 exp. Xem lại kỉ niệm ngày xưa code music player vui biết bao ^^, nếu không có anh Sơn thì chắc mình sẽ bỏ nghề mất.
@giahuyha6189
@giahuyha6189 3 жыл бұрын
1. 2. đổi onchange thành oninput 3. đổi nearest thành center 4. 5.
@chovycon3056
@chovycon3056 2 жыл бұрын
Bạn cho mình hỏi sao bạn biết được onchange thành oninput hay v . Mình cảm ơn
@nghiahoang9201
@nghiahoang9201 Жыл бұрын
@@chovycon3056 .
@thienvu1377
@thienvu1377 3 жыл бұрын
Cảm ơn vì những chia sẻ của a, năm mới e chúc anh nhiều sức khỏe và thành công hơn nhé! :D Mong rằng năm nay có thêm khóa react của a :3
@KhangNguyen-kq2iw
@KhangNguyen-kq2iw 3 жыл бұрын
Cảm ơn thầy vì năm vừa qua nhé, nhờ kênh thầy mn học đc rất nhiều, chúc thầy năm mới vui vẻ và nhiều sức khỏe bên gđ
@laptrinhfullstack
@laptrinhfullstack 3 жыл бұрын
Cảm ơn anh và chúc anh một năm mới vui vẻ..mong anh có thật nhiều sức khỏe để ra nhiều ví dụ hơn nữa để mọi ng áp dụng kiến thức JavaScript vào ạ
@thang8617
@thang8617 3 жыл бұрын
Anh làm video ẩn/hiện header theo tốc độ cuộn trang như của ứng dụng KZbin và fb trên di động đi anh. Tức là mình cuộn từ từ thì thanh header cũng từ từ ẩn/hiện đi, cuộn nhanh thì nó ẩn/hiện nhanh đấy ạ
@hieptranduy3583
@hieptranduy3583 3 жыл бұрын
Chúc anh cùng f8 năm mới thật nhiều sức khỏe, thành công ạ
@hoangngoc11906
@hoangngoc11906 3 жыл бұрын
Chúc mừng năm mới anh Sơn, chúc anh càng ngày càng phát triển F8 tiến xa hơn
@datwilliama2
@datwilliama2 3 жыл бұрын
chúc anh sơn năm mới vui vẻ, sự nghiệp thăng tiến, và quan trọng là ra clip đều đều :3
@vinhlam8887
@vinhlam8887 3 жыл бұрын
Hay anh ơi. Kênh của anh vừa học vừa thực hành luôn nên học đỡ nản mà rất cuốn
@dotuanthanh
@dotuanthanh 3 жыл бұрын
cảm ơn anh vì chia kiến thức , kĩ năng anh chia sẻ , chúc anh va gia đình năm mới thật nhiều sức khoẻ , thành công , hạnh phúc
@juhandvan
@juhandvan 3 жыл бұрын
Món quà lì xì đầu năm rất ý nghĩa. Cám ơn anh Sơn nhiều và chúc cho F8 sẽ có một năm 2021 thành công rực rỡ. À a Sơn quê ở đâu vậy ạ
@uynguyen2607
@uynguyen2607 3 жыл бұрын
Có thông báo em vào xem luôn. Em chúc anh Sơn năm mới mạnh khoẻ, vui vẻ và thành thành công nhé. Và sớm ra thêm nhiều khoá học bổ ích cho bọn em nhé 😊😊😊
@risket211
@risket211 3 жыл бұрын
Hay quá anh ơi. Thật ngưỡng mộ anh. Chúc anh năm mới nhiều sức khoẻ và gặp nhiều điều may mắn.
@longthanhvu8415
@longthanhvu8415 3 жыл бұрын
Chúc mừng năm mới anh ! Mong anh có nhiều sức khỏe vào niềm vui trong cuộc sống nhé
@danhlevu6472
@danhlevu6472 3 жыл бұрын
mỗi lần a Sơn bật nhạc chạy thấy anh lắc đầu theo nhìn tếu thiệt :))
@datwilliama2
@datwilliama2 3 жыл бұрын
quá xịn luôn anh ơi, mỗi lần xem video của anh là em lại biết thêm được vài kiến thức mới hehe
@minhtaingo9182
@minhtaingo9182 3 жыл бұрын
trong 2021 e sẽ quyết tâm đạt được mục tiêu mà mình đưa ra. (để tạm ở đây khi nào nản thì lấy ra xem) :))
@F8VNOfficial
@F8VNOfficial 3 жыл бұрын
Cố lên em
@voducthang16
@voducthang16 3 жыл бұрын
Chúc anh một năm mới bình an, vui vẻ và hạnh phúc bên gia đình và người thân
@ProgramingUni
@ProgramingUni 3 жыл бұрын
Tuyệt vời quá anh, năm mới đặt mục tiêu gì là làm được mục tiêu đó nha các bạn.
@HuyTran-ge7ie
@HuyTran-ge7ie 3 жыл бұрын
Chúc mừng nắm mới a. Cảm ơn nhưng gì a đã chia sẻ năm 2020
@huydoan26895
@huydoan26895 3 жыл бұрын
bài giảng của anh quá hay và chi tiết, cám ơn anh Sơn Đặng nhiều ^^
@nguyenthanh2524
@nguyenthanh2524 3 жыл бұрын
Chúc mừng năm mới a và mọi người nhé
@linhtranbao4732
@linhtranbao4732 3 жыл бұрын
Đoạn 16:16 theo mình mình nghĩ không phải là do kéo nhanh quá đâu mà do scrollTop nó lớn hơn 200 nên newcdWidth = 200 - 300(minh ví dụ) nên nó nhỏ hơn 0
@LamVu-dv2bi
@LamVu-dv2bi 2 жыл бұрын
scroll nhanh nên không bắt đc cái khúc = 0 mà qua âm luôn vẫn còn hình
@duyanh6909
@duyanh6909 2 жыл бұрын
thì vẫn do kéo nhanh đó :vv nếu bạn kéo chậm đến đoạn 200 thì dù bạn có kéo xuống nữa thì nó cũng đã ẩn rồi nên giá trị âm cũng k sao
@sonle23-j2d
@sonle23-j2d 3 жыл бұрын
Chúc mừng anh năm mới vui vẻ và gia đình anh có nhiều sức khoẻ
@quynguyen-cy5by
@quynguyen-cy5by 3 жыл бұрын
:v phọt cơm cái đoạn kiến thức cơ bản , nhưng cơ bản chưa chắc dễ , cơ bản quá dễ khi code chạy đc loạn lun anh =))
@phatnguyenthanh3620
@phatnguyenthanh3620 Жыл бұрын
anh ơi có cách nào đưa cái animate về ban đầu khi next sang bài mới ko ạ?
@xuantuongbui8292
@xuantuongbui8292 3 жыл бұрын
Làm video học react js trong 1 video đi anh :(
@nguyennhatkhanh4610
@nguyennhatkhanh4610 3 жыл бұрын
cảm ơn anh. Chúc anh năm mới vui vẻ. Content video này rất ok, nhưng chất lượng video hơi thấp, hơi khó đọc code ở darkmode. Để mai em lên PC xem thử. Lần nữa chúc anh và gia đình năm mới nhiều sức khoẻ
@tientranphuc1547
@tientranphuc1547 2 жыл бұрын
Nay xem đúng có không khí tết luôn. Ae nào xem vào 29 điểm danh nào
@DatLe-tc3fu
@DatLe-tc3fu 3 жыл бұрын
chúc mừng năm mới a vs mng nhé 💯❤️🦋
@thanhvo1703
@thanhvo1703 2 жыл бұрын
Anh cho em hỏi về 1 chút về kĩ thuật anh dùng padding-top ở phút 13:39 thì em có tự test thì thấy nếu bỏ đi padding-top thì height của thẻ cha cũng trở về 0 thì cái padding-top có phải thay vì mình viết thêm 1 cái height cho thẻ cha và thẻ con sẽ kế thừa cái height ấy thông qua thuộc tính inherit thì mình ko cần viết height cho thẻ cha mà chỉ cần để padding-top cho thẻ con thì nó cũng sẽ lấp đầy được cái height của thẻ cha đúng ko anh. Nhưng mà chỉ số 100% này nó lại kế thừa từ width của thằng Cha để nó setup cho cúi height của nó vì khi em comment width:100% đi thì width bằng 0*200. Không biết em hiểu như thế có đúng không anh !
@tuan2016
@tuan2016 2 жыл бұрын
cho mình hỏi dùng extension gì để nó gợi ý thuộc tính vậy ạ. Như 14:25 mình cd. như video mà nó không gợi ý offsetWidth
@nguyenvohoanglong3898
@nguyenvohoanglong3898 3 жыл бұрын
Chúc anh năm mới tràn đầy sức khỏe
@doannguyen9883
@doannguyen9883 3 жыл бұрын
chúc anh năm mới vui vẻ ạ. cảm ơn anh vì những khoá học ahi
@vancongang3092
@vancongang3092 2 жыл бұрын
Cám ơn anh, một video tuy dài nhưng vô cùng bổ ích vs những ai đam mê js như e,
@vuongqtvn
@vuongqtvn 3 жыл бұрын
Chúc mừng năm mới Anh Sơn
@luubaoncter8734
@luubaoncter8734 3 жыл бұрын
xem video đến phút thứ 6:00 thì chạy đi tìm nhạc, lựa ảnh hết 1 tiếng đồ hồ ạ :V
@TranLamYoutube
@TranLamYoutube 3 жыл бұрын
=)) me too
@D8manwalking
@D8manwalking 3 жыл бұрын
Video của anh thực sự hữu ích, nhưng lại ít người biết đến quá:((
@trungtrung2248
@trungtrung2248 3 жыл бұрын
cảm ơn anh nhiều chúc mừng năm mới anh, mong anh luôn giữ được sức khỏe.
@caominhdev
@caominhdev 3 жыл бұрын
Chờ mãi, cám ơn a Sơn nhiềuuuuuuuuuu
@cuong5861
@cuong5861 3 жыл бұрын
A ơi cho em hỏi. Khi đi làm thì be đưa api fe thì có đưa luôn URL để test trên postman k ạ. Em đang học gọi API mà em thấy ngta test API trên postman mà em k biết đc sao lại có URL như thế. Happy new year nha a
@dohoadangcaptaimienphi
@dohoadangcaptaimienphi 2 жыл бұрын
cho mình hỏi là mình muốn ad vào góc bên phải blog spot rồi , sau khi ad thành công viết bài kiểu gì ạ
@phungxuannam2617
@phungxuannam2617 3 жыл бұрын
"Sai bố rồi các bạn ơi" anh Sơn làm em cười sặc luôn
@nhantrinhhuu7393
@nhantrinhhuu7393 3 жыл бұрын
:v
@unk1609
@unk1609 3 жыл бұрын
Đang định vào học nốt bài của a thì f8 lỗi nên vào lại youtube lun :))
@TuanNguyen-oi3gk
@TuanNguyen-oi3gk 2 жыл бұрын
Bạn có thể làm thêm chức năng hiển thị lời karaoke bài hát .lrc như zingmp3, NCT không?
@nguoichoinhac8113
@nguoichoinhac8113 7 ай бұрын
Thầy ơi làm sao để hiển thị tổng thời gian bài hát và thời gian đang chạy vậy thầy
@thanhduynguyen6253
@thanhduynguyen6253 2 жыл бұрын
A Sơn và ae cho em hỏi chút, em không biến this thành _this, có phải vì lí do đó khi làm đến bước nextSong phút thứ 53:00 thì nextSong của e biến thành constructor đúng k a ???
@aidan93
@aidan93 3 жыл бұрын
Happy lunar year a Sơn
2 жыл бұрын
// const c = ..bind() // đối tượng b mượn phương thức A của đối tượng a và gán cho biến c
@viethungoan3509
@viethungoan3509 3 жыл бұрын
cho e hỏi là phần nhạc đã chạy qua thì css như nào vậy ạ. E cám ơn nhiều
@phucphamvan7310
@phucphamvan7310 3 жыл бұрын
Quá hay anh ơi Tết vẫn làm video☺☺
@HaiNguyen-bx4kr
@HaiNguyen-bx4kr 3 жыл бұрын
Respect
@tuongtamnguyen9034
@tuongtamnguyen9034 2 жыл бұрын
anh ơi cónếu thay javascript bằng angularthì có thể viết đc ạ
@BDCCNVuMinhQuang
@BDCCNVuMinhQuang 3 жыл бұрын
a ơi ra tiêp những video thực hành ntn đi ạ, hay quá a ơi
@itsupport6254
@itsupport6254 2 жыл бұрын
00:04:53 Có cách nào set chiều cao cho position: fixed mà không cần dùng margin cho element tiếp theo không Sơn?
@rainydaytuness
@rainydaytuness 2 жыл бұрын
bắt buộc phải set cứng khoảng cách cho element dưới thôi bác ạ, tại fixed nó không chiếm không gian web
@thienhuynh7962
@thienhuynh7962 2 жыл бұрын
Một option khác là không sử dụng position: fixed mà thay vào đó là cho cái playlist scroll được và giới hạn lại chiều cao của nó, nhưng đòi hỏi bạn phải biết xử lý scrollbar nếu không muốn trông ui bị xấu.
@lightd1404
@lightd1404 2 жыл бұрын
nhìn mặt a khi mở play nhạc buồn cười v +))
@thuandev6037
@thuandev6037 3 жыл бұрын
Hay quá a ❤❤ ! Khi nào làm game đoán hình đi a
@nghiepnguyen1439
@nghiepnguyen1439 3 жыл бұрын
Anh ơi, quay tiếp series Nodejs đi anh, mong mỏi từng ngày
@khangta1577
@khangta1577 3 жыл бұрын
Năm mới vui vẻ anh ơiiii
@HoangNamVuong
@HoangNamVuong Жыл бұрын
xem tới đoạn 43:20 ông Sơn tính mà phì cười =))), mình cũng hay bị thế lúc vội là não tự nhiên k nghĩ nổi
@F8VNOfficial
@F8VNOfficial Жыл бұрын
Mình thì lúc ko vội não cũng thế luôn 😂
@GiangNguyen-cg8nm
@GiangNguyen-cg8nm 3 жыл бұрын
cho e hỏi là khi e thử chạy code trên safari của iphone thì khi cho trình duyệt ở background hay khóa màn hình thì code javascript ko chạy tiếp được thì làm sao để khắc phục đc điều này ạ? e cảm ơn ạ :3
@2kvlogs785
@2kvlogs785 3 жыл бұрын
Quá tuyệt vời a ơi 👍👍
@huybn1988
@huybn1988 3 жыл бұрын
a cho e hỏi cách lấy link nhạc mp3 như thế nào ạ , em search mãi ko tìm đc. mong a trả lời
@F8VNOfficial
@F8VNOfficial 3 жыл бұрын
Lên mạng down bài nhạc về source code mà làm cho dễ em ơi
@duongpham-mq6xh
@duongpham-mq6xh 3 жыл бұрын
a ơi cho e hỏi là bài hát phải down về à a, với cả mấy cái ảnh của bài hát nữa ạ, e có lên zingmp3 tải ảnh mà k thấy chỗ tải ạ
@quangbinh4797
@quangbinh4797 2 жыл бұрын
20:55 sao em không app.currentSong được a? thấy báo là app is not defined
@thanhnguyentrung6916
@thanhnguyentrung6916 3 жыл бұрын
A giải thích giúp mình phần css player và playing với
@GiangNguyen-cg8nm
@GiangNguyen-cg8nm 3 жыл бұрын
A Sơn ơi, cho em hỏi là em làm thử web này rồi đẩy code lên mạng, nhưng chạy bằng trình duyệt trên iphone thì khi tắt màn hình đi nó ko hoạt động đc tiếp ạ, còn vs android thì vẫn oke ạ. Em tìm cách khắc phục nhưng hình như IOS ko cho web chạy ngầm trên điện thoại nên là việc e muốn nhạc vẫn tiếp tục phát khi tắt màn hình là ko khả thi luôn ạ? E cám ơn a
@ynguyenminh478
@ynguyenminh478 Жыл бұрын
cảm ơn anh Sơn nhé. bài này rất hay ạ
@hoangphan2320
@hoangphan2320 3 жыл бұрын
anh cho em hỏi lấy link âm nhạc thế nào ạ
@trieuthuan8995
@trieuthuan8995 3 жыл бұрын
thanks anh nhén, luôn ủng hộ anh !!
@khanhviet7581
@khanhviet7581 2 жыл бұрын
Cả video chỉ không hiểu đúng đoạn config ạ, ngoằng thật sự :)) Cảm ơn anh Sơn đã làm vid
@buidu691
@buidu691 3 жыл бұрын
a cho em hỏi khi em tua thì audio.currentTime nó vẫn luôn có giá trị 0, mặc dù em đã update cho nó cái seekTime rồi
@nguyenchuong4861
@nguyenchuong4861 3 жыл бұрын
Xem về cuối nhìn anh vội mà em vội theo 😅
@thienanghuu682
@thienanghuu682 3 жыл бұрын
làm sao vscode đọc được file mp3 nhỉ của e ko đọc được cơ
@SonNguyen-eu2up
@SonNguyen-eu2up 3 жыл бұрын
A có thể giải thích chỗ _this = this k ạ? Chúc a năm mới vui vẻ
@F8VNOfficial
@F8VNOfficial 3 жыл бұрын
A giải thích rồi đó mà nhỉ. E chưa hiểu chỗ nào?
@stayhome1756
@stayhome1756 3 жыл бұрын
anh ơi em hỏi chút là tại 1:16:13 em không dùng kiểu là ES6 viết cho this.song.map((song,index) => .... mà thay vào đó em dùng function(song,index) {} thì kết quả lại k ra được ạ, đoạn này em chưa rõ ạ, cảm ơn anh ạ
@nguyenminhthanhk16_hl40
@nguyenminhthanhk16_hl40 2 жыл бұрын
Của b mới chỉ là function, của a Sơn kia là map nữa mà b :)))
@stayhome1756
@stayhome1756 2 жыл бұрын
@@nguyenminhthanhk16_hl40 mình lúc đó là dùng ES6 để viết mà
@nguyenminhthanhk16_hl40
@nguyenminhthanhk16_hl40 2 жыл бұрын
@@stayhome1756 ý mình là cái trên es6 là a Sơn duyệt qua từng ele của song luôn ý. Còn caia dưới b ghi function kia nó là 1 function thôi mà đâu đã duyệt qua từng ele của song đâu
@stayhome1756
@stayhome1756 2 жыл бұрын
@@nguyenminhthanhk16_hl40 A zô mình hiểu rồi cảm ơn bạn nhé
@BDCCN-VuManhQuang
@BDCCN-VuManhQuang 3 жыл бұрын
Happy New Year F8
@huytruongle6410
@huytruongle6410 3 жыл бұрын
Hóng anh ra khoá python quá 🥳
@khanhbao7269
@khanhbao7269 3 жыл бұрын
Dạy reactjs đi a ơi
@nguyenquoctuan8910
@nguyenquoctuan8910 Жыл бұрын
1.Hạn chế tối đa các bài hát bị lặp lại currentIndex: 0, isPlaying: false, isRandom: false, isRepeat: false, playedIndexes: [], thêm mảng playedIndexes[] loadConfig: function () { this.isRandom = this.config.isRandom this.isRepeat = this.config.isRepeat this.currentIndex = this.config.currentIndex this.playedIndexes.push(this.config.currentIndex) //Object.assign(this, this.config) }, Load bài hát hiện tại push vào mảng playedIndexes playRandomSong: function () { let newIndex do { newIndex = Math.floor(Math.random() * this.songs.length) } while (this.playedIndexes.includes(newIndex)) this.playedIndexes.push(newIndex) if (this.playedIndexes.length === this.songs.length) { this.playedIndexes = [] } this.currentIndex = newIndex this.loadCurrentSong() }, Sửa lại hàm playRandomSong Mỗi bài sẽ chỉ được random 1 lần! 2. Fix lỗi khi tua bài hát, click giữ một chút sẽ thấy lỗi, vì event updatetime nó liên tục chạy dẫn tới lỗi Thay sự kiện onchange thành oninput: progress.oninput = function(e) { const seekTime = audio.duration / 100 * e.target.value audio.currentTime = seekTime }; 3. Fix lỗi khi next tới 1-3 bài đầu danh sách thì không “scroll into view” Thay block: 'nearest' thành block: 'center' scrollToActiveSong: function () { setTimeout(() => { $('.song.active').scrollIntoView({ behavior:'smooth', block: 'center' }) }, 300) }, 4. Lưu lại vị trí bài hát đang nghe, F5 lại ứng dụng không bị quay trở về bài đầu tiên thêm dòng this.currentIndex = this.config.currentIndex vào hàm loadConfig loadConfig: function () { this.isRandom = this.config.isRandom this.isRepeat = this.config.isRepeat this.currentIndex = this.config.currentIndex //Object.assign(this, this.config) }, this.setConfig("currentIndex", this.currentIndex) thêm dòng này vào hàm loadCurrentSong 5. Thêm chức năng điều chỉnh âm lượng, lưu vị trí âm lượng người dùng đã chọn. Mặc định 100% Thêm các icon const app = { currentIndex: 0, isPlaying: false, isRandom: false, isRepeat: false, playedIndexes: [], currentVolume: 0, Thêm biến currentVolume để lưu âm lượng hiện tại // Xử lý tăng giảm âm lượng upVolumeBtn.onclick = function () { console.log(audio.volume) if (audio.volume < 1.0) { audio.volume = parseFloat((audio.volume + 0.1).toFixed(1)); volumeSlider.value = audio.volume; console.log(volumeSlider) _this.setConfig('currentVolume', volumeSlider.value) } } downVolumeBtn.onclick = function () { console.log(audio.volume) if (audio.volume > 0.0) { audio.volume = parseFloat((audio.volume - 0.1).toFixed(1)); volumeSlider.value = audio.volume; console.log(volumeSlider) _this.setConfig('currentVolume', volumeSlider.value) } } // Cập nhật giá trị volume slider khi giá trị volume bị thay đổi audio.onvolumechange = function () { volumeSlider.value = audio.volume; } thêm 2 dong ở hàm loadConfig loadConfig: function () { this.isRandom = this.config.isRandom this.isRepeat = this.config.isRepeat this.currentIndex = this.config.currentIndex this.playedIndexes.push(this.config.currentIndex) volumeSlider.value = this.config.currentVolume audio.volume = this.config.currentVolume //Object.assign(this, this.config) },
@e.galois4940
@e.galois4940 Жыл бұрын
Hay qua bn
@nguyenquoctuan8910
@nguyenquoctuan8910 Жыл бұрын
@@e.galois4940 Cảm ơn bạn
@thanhnguyentrung6916
@thanhnguyentrung6916 3 жыл бұрын
Cho mình hỏi, với lượng lớn bài hát (> 500 bài) thì có nên lưu vào 1thư mục rồi lấy ra từng cái và gán vào songs[ ] như video k?
@F8VNOfficial
@F8VNOfficial 3 жыл бұрын
Cái này tuỳ tình huống bạn muốn gì thôi. Số lượng lớn thì gây ảnh hưởng tới hiệu năng, nó bị lag hơn vì số lượng DOM elements. Bạn tìm hiểu thêm 2 từ khoá giúp mình là "load more" và "virtual scroll" nhé. Load more là kéo tới đâu tải thêm tới đấy, virtual scroll là kỹ thuật cao hơn, khó hơn, tự động remove những element nằm ngoài vùng nhìn thấy được của trình duyệt để giảm số lượng elements trong DOM, kỹ thuật này đáp ứng đc cả danh sách hàng triệu luôn nhé.
@xuanthuc189
@xuanthuc189 3 жыл бұрын
Sơn đúng là tuyệt vời!
@huynhnhathao6339
@huynhnhathao6339 2 жыл бұрын
mùng 1 năm nay có cái gì nữa không anh ơi
@tin7500
@tin7500 2 жыл бұрын
Anh có thể thêm phần hiện thời gian bài hát vào không?
@lightd1404
@lightd1404 2 жыл бұрын
b làm dc chưa phần này mh mới làm dc xong =)))
@nghiahoang9201
@nghiahoang9201 Жыл бұрын
@@lightd1404 mình xin code tham khảo với b
@bachhoangofficial2981
@bachhoangofficial2981 Жыл бұрын
có ai vừa xem vừa tội cho ông lái xe k
@HungNguyen-yx4pw
@HungNguyen-yx4pw 2 жыл бұрын
mọi người cho e hỏi muốn thay bài hát làm như nào ạ ?
@dyanh97
@dyanh97 3 жыл бұрын
Anh ơi. sao em không kết nối được với mấy cái path bài hát vậy anh?
@01_lethanhan89
@01_lethanhan89 3 жыл бұрын
mk cũng thế bạn ạ
@dyanh97
@dyanh97 3 жыл бұрын
@@01_lethanhan89 tải mấy bài khác rồi thế vô đi bạn
@tamtt1512
@tamtt1512 2 жыл бұрын
Hiện tại link các bài nhạc không sử dụng được nữa á anh, anh chỉ em cách tìm các link thay thế được không ạ
@TungPham-dt6tr
@TungPham-dt6tr Жыл бұрын
bác lấy đc link chưa, cho e xin với
@hungpham-mj8nl
@hungpham-mj8nl 3 жыл бұрын
42:50 cho ta thấy không nhất thiết phải giỏi toán để học lập trình
@01_lethanhan89
@01_lethanhan89 3 жыл бұрын
anh ơi sao e không kết nối được mấy cái path ạ
@F8VNOfficial
@F8VNOfficial 3 жыл бұрын
E tải file về máy rồi link lại nha. Có thể link của anh để lâu nó bị hỏng r e ơi
@animess1343
@animess1343 3 жыл бұрын
Không tải file mp3 về là bị lỗi reset currentTime = 0 lun anh
@Tolasua114
@Tolasua114 3 жыл бұрын
anh ơi nhạc của em có 5 bài, nó chạy random hết 5 bài xong thì tự dừng. Bây giờ làm sao cho nó tự động chạy lại cả list nhạc ạ ? Kiểu khi e học bài thì e mở cho list nhạc nó chạy miết vậy đến khi e tắt thì thôi ý :(( anh bày e với
@khoatran1535
@khoatran1535 3 жыл бұрын
event onended a Sơn có code trong video r mà nhỉ
@nghiemphamthanh8148
@nghiemphamthanh8148 3 жыл бұрын
Em đã học khoá js của anh rồi. Nhưng khi code 1 sản phẩm gì đó em không biết nên sử dụng kiến thức như thế nào hết! Mong anh trả lời comment của em!!!!!!!!!
@thienhungnguyen5639
@thienhungnguyen5639 3 жыл бұрын
làm và học lại theo những vấn đề bạn gặp phải
@nghiahoang9201
@nghiahoang9201 Жыл бұрын
ổn chưa bro ơi
VIP ACCESS
00:47
Natan por Aí
Рет қаралды 30 МЛН
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН
小丑教训坏蛋 #小丑 #天使 #shorts
00:49
好人小丑
Рет қаралды 54 МЛН
Cà Phê Chém Gió Về Cookie & Session
1:26:07
F8 Official
Рет қаралды 35 М.
CORS Policy Là Gì? | Cách Xử Lý Khi Bị Chặn Bởi CORS
1:08:43
Học Vue js trong một video duy nhất - learn vue js in one video
2:48:52
Lập trình viên TV
Рет қаралды 103 М.
This keyword trong JavaScript | JavaScript nâng cao
25:01
F8 Official
Рет қаралды 44 М.
Thêm/sửa/xóa khóa học với Fetch và REST API
32:02
F8 Official
Рет қаралды 100 М.
VIP ACCESS
00:47
Natan por Aí
Рет қаралды 30 МЛН