HOME-Au
HOME-Au
24h
24h
USA
USA
GOP
GOP
Phim Bộ
Phim Bộ
Videoauto
VIDEO-Au
Home Classic
Home Classic
Donation
Donation
News Book
News Book
News 50
News 50
worldautoscroll
WORLD-Au
Breaking
Breaking
 

Go Back   VietBF > Others (Closed Forums) > Archive - Old News 2005-2011 (closed)

 
 
Thread Tools
Default Lỗi chức năng Repeat của chương trình nghe nhạc
Old 09-06-2011   #1
Romano
R11 Tuyệt Thế Thiên Hạ
 
Romano's Avatar
 
Join Date: May 2007
Posts: 138,525
Thanks: 9
Thanked 6,560 Times in 5,506 Posts
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
Quoted: 38 Post(s)
Rep Power: 174
Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10
Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10Romano Reputation Uy Tín Level 10
Một bạn đọc đã xây dựng chương trình nghe nhạc bằng Visual Basic 6.0. Chương trình chạy được nhưng chức năng Repeat bị lỗi, không thể phát lặp lại được.

Cụ thể bạn đọc đã xây dựng chương trình và các đoạn mã theo quy trình như sau: Tạo Project mới loại "Standard EXE". Chọn menu Project.Components để hiển thị cửa sổ Components. Duyệt tìm và đánh dấu chọn vào 2 mục "Windows Media Player" và "Microsoft Common Dialog Controls 6.0" để "add" 2 điều khiển phục vụ chơi multimedia và duyệt hệ thống file vào Project. Chọn menu Tools.Menu Editor để chạy tiện ích thiết kế menu bar rồi thiết kế menubar cho Form ứng dụng gồm 1 menu pop-up có caption là File, trong menu pop-up này chứa 4 option lần lượt là mnuOpen, mnuPlay, mnuRepeat, mnuExit. Thiết kế Form ứng dụng gồm có 1 listbox có tên mặc định là List1, 1 Timer có tên mặc định là Timer1, 1 CommonDialog có tên mặc định là CommonDialog1, 1 WMP có tên là Media (vị trí của Timer và CommonDialog không quan trọng vì 2 đối tượng này sẽ bị ẩn khi ứng dụng chạy). Dời chuột về từng option menu và chọn nó để tạo thủ tục xử lý sự kiện click chuột của option tương ứng rồi viết code hiện thực. Chi tiết vấn đề này, mời quý bạn đọc tham khảo tại http://forum.pcworld.com.vn/default.aspx?g=posts&t=7358
Chúng tôi đã kiểm tra chương trình của bạn và tìm ra một số lỗi cũng như một số chi tiết chưa đúng như sau:
1. Bạn có dùng timer với thời gian đếm nào đó (chúng tôi thiết lập 1 giây), khi timer đếm xong thời gian qui định thì thủ tục Timer1_Timer() sẽ được kích hoạt, thủ tục này kiểm tra xem hết bài hát chưa, nếu hết thì chuyển sang bài kế tiếp trong danh sách. Đây là nguyên nhân làm chức năng Repeat hoạt động không chính xác. Lý do là bạn miêu tả điều kiện hết bài hát là khi còn ít hơn hay bằng 1 giây, điều kiện này không chính xác. Hơn nữa chế độ Repeat cũng như playlist mà bạn thiết lập cho WMP không còn tác dụng nữa (do bạn thiết lập lại từng bài hát trong thủ tục Timer1_Timer).
Cách giải quyết là xóa bỏ Timer và thủ tục Timer1_Timer(), để WMP tự hoạt động theo chế độ Repeat mà bạn thiết lập trong thủ tục mnuRepeat_Click().
2. Trong thủ tục mnuPlay_Click(), bạn chuyển danh sách bài hát từ ListBox sang WMP mà không xóa nội dung playlist có sẵn trong WMP, như vậy nếu người dùng chọn nhiều lần option Play thì mỗi bài hát trong listbox sẽ được thêm vào playlist của WMP nhiều lần, điều này là không cần thiết và dễ làm mất sự kiểm soát của chương trình.
Cách khắc phục là thêm lệnh xóa nội dung playlist hiện có trong WMP trước khi chuyển danh sách bài hát từ Listbox sang WMP. Cụ thể thủ tục mnuPlay_Click được hiệu chỉnh lại như sau:
'thủ tục xử lý option Play
Private Sub mnuPlay_Click()
'định nghĩa các biến cần dùng trong thủ tục
Dim i As Integer
Dim MyPlaylist As IWMPPlaylist
Dim MyMedia As IWMPMedia
Set MyPlaylist = Me.Media.currentPlay list
'xóa nội dung hiện có của Playlist
MyPlaylist.Clear
'chuyển các file từ Listbox vào Playlist
For i = 0 To List1.ListCount - 1
Set MyMedia = Me.Media.newMedia(Li st1.List(i))
MyPlaylist.appendIte m MyMedia
Next
Media.currentPlaylis t = MyPlaylist
'tô chọn bài đầu tiên trong ListBox
List1.ListIndex = 0
End Sub
3. Tương tự, trong thủ tục mnuOpen_Click(), bạn chuyển danh sách các file từ cửa sổ CommonDialog sang Listbox mà không xóa nội dung có sẵn trong Listbox, như vậy nếu người dùng chọn nhiều lần option Open thì listbox sẽ tích lũy dần rất nhiều file bài hát, các file này có thể trùng nhau, điều này là không cần thiết và dễ làm mất sự kiểm soát của chương trình.
Cách khắc phục là thêm lệnh xóa nội dung Listbox trước khi chuyển danh sách file bài hát từ CommonDialog sang Listbox. Cụ thể bạn nên thêm lệnh sau vào đầu thủ tục mnuOpen_Click():
'xóa nội dung hiện có của Listbox
List1.Clear
4. Việc tô đậm tên file bài hát trong Listbox đồng bộ với bài hát mà WMP đang chơi sẽ được thực hiện trong thủ tục xử lý sự kiện MediaChange của WMP. Cụ thể bạn hãy viết thêm thủ tục xử lý sự kiện MediaChange như sau:
'thủ tục xử lý sự kiện chuyển bài hát
Private Sub Media_MediaChange(By Val Item As Object)
'định nghĩa các biến cần dùng trong thủ tục
Dim MyMedia As IWMPMedia
Dim i As Integer, pos As Integer
Dim sbuf As String
Dim lbuf() As String
Set MyMedia = Item
'duyệt tìm file đang hát
For i = 0 To List1.ListCount - 1
'đổi pathname thành nhiều thành phần
lbuf = Split(List1.List(i), "\")
'xác định tên file bài hát
sbuf = lbuf(UBound(lbuf))
'xác định tên bài hát (bỏ phần mở rộng)
pos = InStr(1, sbuf, ".")
If pos <> 0 Then
sbuf = Mid(sbuf, 1, pos - 1)
End If
If MyMedia.Name = sbuf Then
'nếu bài đang hát là bài i trong Listbox thì tô đậm nó
List1.ListIndex = i
Exit For
End If
Next
End Sub
Nếu bạn hiệu chỉnh lại các chi tiết nêu trên thì ứng dụng sẽ chạy tốt, nó sẽ chơi lặp lại hay không tùy thuộc vào option Repeat có được chọn hay không. Mỗi lần hát bài mới. Listbox sẽ tô đậm tên file bài hát ấy cho người dùng tiện theo dõi.
Romano_is_offline  
Attached Thumbnails
Click image for larger version

Name:	visualbasicpic.jpg
Views:	15
Size:	144.5 KB
ID:	314984  
 
User Tag List

Thread Tools

“Ác mộng trước Giáng Sinh”: bài diễn văn u ám của Trump và cuộc chiến với thực tế đời sống Mỹ bước vào đợt thắt chặt nhập cư mới Châu Âu vay tiền cứu Ukraine, không đụng tài sản Nga bị phong tỏa: vì sao?
Facebook chuẩn bị thu phí tài khoản, chia sẻ link bài có nguy cơ bị khóa từ 2026 Rơi máy bay tại Mỹ, 7 người đã thiệt mạng Hơn 12.000 người gốc Việt đến Mỹ trước 1995 cầm chắc vé trục xuất về Việt Nam?
Ông Trump có thể ra lệnh cấm công dân VN nhập cảnh Mỹ với những nguyên nhân rất giống Lào Sau Lào, ông Trump muốn cấm công dân Việt Nam nhập cảnh nước Mỹ? Úc: Giới chức an ninh đã ngăn chặn kịp thời âm mưu khủng bố mới ở bãi biển Bondi
Úc cấm thiếu niên dưới 16 tuổi dùng Facebook vì quá độc hại, Mỹ có lẽ tiếp bước? Cái chết bí ẩn của Tulku Hungkar Dorje tại Sài Gòn: Bàn tay Bắc Kinh và sự im lặng của Hà Nội Thương Tín qua đời : Đám Tang Lặng Lẽ Ở Phan Rang Và Hào Quang Vang Bóng
85.000 tấm visa bị xé bỏ: chân dung nước Mỹ thời truy bức di dân 48 Giờ Cùm Tay Trên Bầu Trời: Số Phận Bà Melissa Trần Và Bóng Đen Luật Di Trú Mỹ Từ Tử Thủ Đến Công Chức Xứ Người – Đời Lưu Vong Của Trung Tướng Ngô Quang Trưởng
Mùa Noel “Ông Già Định Ở Lại” – Góc Đời Riêng Của Vợ Chồng Tổng Thống Nguyễn Văn Thiệu Trump, Obamacare và bài trắc nghiệm đạo đức mang tên “Make America Great Again” Từ giọt nước sông Rio Grande đến bóng ma sụp đổ USMCA
Lá Cờ Vàng – Giấc Mơ Nhỏ Và Vận Mệnh Lớn Của Dân Tộc Những trùng hợp rợn người trong lịch sử nhân loại Những bí mật bên trong xác ướp Ba Đình
Dân kinh doanh trả giá đắt vì chính sách thuế của Cộng Sản Trăm năm bia đá cũng mòn, bia hám danh thì còn mãi Sài Gòn ‘bỏ phố’: Mặt bằng trăm triệu, đèn tắt và kỷ nguyên thu mình của người kinh doanh
Costco kiện thuế quan: Cú tát 2.000 USD vào lời hứa ‘năm sau’ của ông Trump 401k – IRA – IUL: Ba cái ‘hũ để dành’ ở Mỹ, xài trật là mất toi tuổi già Chi bộn tiền làm đẹp, giờ ôm rổ mỹ phẩm mà run: Nỗi hoang mang của khách Mailisa sau ngày thẩm mỹ viện tắt đèn
Cột điện gỗ Mỹ để: Nửa thế kỷ vẫn đứng vững ở miền Nam Việt Nam Việt Nam sau 50 năm: Quyền được tự hào và nghĩa vụ… tự chịu đựng Thất thủ trước mưa lũ: Khi bộ máy cứu nạn chỉ còn là những công điện trên giấy
Từ quán phở tị nạn đến tiệm ăn làn sóng mới Hai cái bắt tay lịch sử Nixon – Thiệu và bi kịch một đồng minh bị bỏ rơi Lũ đã dâng tới nóc nhà rồi, lệnh cứu hộ mới ký: 24 giờ vàng bị đánh cắp bởi hai chữ “chờ lệnh”
Việt Nam dưới chế độ cộng sản: Có thật đáng để tự hào? Từ thuyền nhân Việt Nam đến công tố viên hạ gục “Kẻ sát nhân Golden State” Mỹ chính thức “khai tử” đồng penny: Chia tay 1 cent sau 232 năm lặng lẽ trong túi áo người dân
Địa đạo Củ Chi: Huyền thoại tuyên truyền và sự thật bị chôn trong đất đỏ Saudi bắt tay đại gia AI Mỹ: canh bạc nghìn tỷ USD của Thái tử Mohammed bin Salman Walmart – “liều thuốc giải” cho cơn khủng hoảng chi phí sinh hoạt ở nước Mỹ
Trump khoe “thời hoàng kim” dưới mái vòm McDonald’s, trong khi người Mỹ vẫn ngộp vì tiền chợ tiền nhà Doanh nghiệp nhỏ nước Mỹ oằn mình dưới thuế quan Trump và cơn bão chi phí sinh hoạt Trump xoay sang “Plan B”: Giấc mơ làm nước Mỹ rẻ hơn và thực tế hóa đơn ngày một dày
Trump “ảo thuật” giá cả: nói lạm phát giảm, nhưng hóa đơn người Mỹ vẫn tăng Trump trong lâu đài mạ vàng: hứa cứu tầng lớp lao động, rồi lạc khỏi nỗi lo tiền chợ “No Kings” rầm rộ khắp nước Mỹ: Gần 7 triệu người xuống đường, khẳng định “Không có vua trong nền dân chủ”
Thắng Pháp, thắng Mỹ, thắng Tàu... trừ cái hộ chiếu: Việt Nam đứng sau Campuchia, cười ra nước mắt! Vì sao Campuchia cô độc khi khủng hoảng nổ ra: “Bạn bè” không tự nhiên mà có Làn sóng “America First” quét qua Bộ Ngoại Giao: Đại sứ Marc Knapper rời Việt Nam từ tháng Giêng
Vợ của nhạc sĩ, đại tá VNCH Nguyễn Văn Đông qua đời Việt kiều Mỹ mất nhà 100 tỷ 10A Cửu Long tại Sài Gòn vì nhờ bạn đứng tên Tô Lâm đưa 20.000 cảnh sát cơ động khống chế Hà Nội, vô hiệu hoá chủ tịch nước Lương Cường và thủ tướng Phạm Minh Chính
Sân bay Long Thành của Việt Nam hoá ra là 'hàng Trung Quốc' Vụ “UPS giả” vào nhà giết cả gia đình: tin cũ gần 2 năm vẫn hâm nóng cộng đồng người Việt Qua được Mỹ rồi, xin đừng “qua cầu rút ván”
Xả súng kinh hoàng tại Mỹ: Thảm Kịch Tại Brown University - Cơn Ác Mộng Giáng Sinh Và Nỗi Đau Chưa Từng Có Của Một Trường Ivy League Melissa Trần – Tâm thư từ Việt Nam của cô chủ tiệm nail bị trục xuất Úc: Khủng bố xả súng bắn vào cư dân Israel tại bải biển, giết chết 11 người và hàng chục người khác bị thương
Bác sĩ Mũ Đỏ Phạm Gia Cổn: Từ chiến trường Tam Biên đến Khí Công Hoàng Hạc Xả súng ở bãi biển Úc, ít nhất 11 người chết Người Việt tại Đức xuống đường tố cáo bàn tay đàn áp xuyên quốc gia của CSVN
Giữa Tô Lâm và Phan Văn Giang: Cuộc cờ quyền lực, lợi ích nhóm và thân phận 100 triệu dân Target “chơi lớn” ở SoHo: Cửa hàng kiểu mẫu để giành lại hào quang “Tar-zhay” Mỹ bất ngờ thu hẹp thâm hụt thương mại: vàng, thuế quan và những mặt trái sau các con số đẹp
Bài học Nokia giữa mùa đông Phần Lan: Thua từ bên trong trước khi thua thị trường Liuzhi – Bóng tối mới phủ xuống giới doanh nhân Trung Quốc 5 tiểu bang vàng cho nghề nail – hair – spa của người Việt tại Mỹ
Phố Tây Bùi Viện náo nhiệt và bóng dáng nhà canh tân cuối thế kỷ XIX Từ mafia thuốc lá đến tú bà Chemnitz: Vết nhơ kéo dài của một bộ phận người Việt Đông Đức Khi xe Trung Quốc viết lại trật tự ngành ô tô thế giới
Dự luật ‘một quốc tịch Mỹ’: ồn ào trên mặt báo, nhưng rất khó thành hiện thực Netflix nuốt chửng Warner Bros: Địa chấn 72 tỷ đô làm rung chuyển Hollywood Apple rung chuyển: Lãnh đạo lần lượt ra đi, Tim Cook trước cơn bão AI
Kế hoạch y tế mới của Trump: Chưa kịp ra mắt đã vỡ trận ngay trong nội bộ Cộng Hòa Cuộc trả thù chính trị của Trump: Từ vụ Comey, Letitia James đến đòn nhắm vào Mark Kelly Cơn say trên mây: Ai chịu trách nhiệm về hành khách nhậu nhẹt trên máy bay?
Giáng Sinh thắt lưng buộc bụng mà vẫn đủ ấm và đủ vui Mùa mua sắm Giáng Sinh 2025: Kinh tế chữ K và ảo giác “chi tiêu vẫn tăng” DOGE – thí nghiệm quyền lực thất bại của Trump và Musk
Ukraine, Trump và bản hòa ước mong manh giữa tiếng drone gầm rú Dũng Taylor: Căng thẳng đỉnh điểm giữa người Việt MAGA và người Việt Dân Chủ Hùng Cao về thăm Việt Nam: Từ đứa bé tị nạn đến kiến trúc sư an ninh Thái Bình Dương
“Ngày Tri Ân Trump” ở Little Saigon: khi tượng đài chiến sĩ bị biến thành sân khấu chính trị “Giải thưởng Neville Chamberlain” cho Trump và bản thỏa thuận 28 điểm bẩn thỉu Biển lửa Hồng Kông: giàn giáo tre bốc cháy, chung cư Tai Po hóa địa ngục giữa trời
Từ iPod đến “Delete Day”: Hành trình Gabriela Nguyễn thoát khỏi cơn nghiện mạng xã hội “Cha già dân tộc” đã khép lại: khi thần tượng chính trị bị kéo xuống mặt đất DOGE đã chết: “cải cách” 135 tỷ đô la đốt sạch tiền thuế của người Mỹ
VinFast VF 8 ở Mỹ: từ cáo buộc “sạc rùa bò” đến nguy cơ mất lái và lệnh triệu hồi hàng loạt Trump, Putin và ván cờ hòa bình Ukraine: khi “hạn chót” chỉ còn là lời nói gió bay 1.000 tỷ USD bốc hơi: Bitcoin bước vào thời kỳ ‘dành cho người thường’ và cơn say tiền số tan vỡ

 
Lên đầu Xuống dưới Lên 3000px Xuống 3000px

iPad Videos Portal Autoscroll

VietBF Music Portal Autoscroll

iPad News Portal Autoscroll

VietBF Homepage Autoscroll

VietBF Video Autoscroll Portal

USA News Autoscroll Portall

VietBF WORLD Autoscroll Portal

Home Classic

Super Widescreen

iPad World Portal Autoscroll

iPad USA Portal Autoscroll

Phim Bộ Online

Tin nóng nhất 24h qua

Tin nóng nhất 3 ngày qua

Tin nóng nhất 7 ngày qua

Tin nóng nhất 30 ngày qua

Albums

Total Videos Online
Lên đầu Xuống dưới Lên 3000px Xuống 3000px

Tranh luận sôi nổi nhất 7 ngày qua

Tranh luận sôi nổi nhất 14 ngày qua

Tranh luận sôi nổi nhất 30 ngày qua

10.000 Tin mới nhất

Tin tức Hoa Kỳ

Tin tức Công nghệ
Lên đầu Xuống dưới Lên 3000px Xuống 3000px

Super News

School Cooking Traveling Portal

Enter Portal

Series Shows and Movies Online

Home Classic Master Page

Donation Ủng hộ $3 cho VietBF
Lên đầu Xuống dưới Lên 3000px Xuống 3000px
Diễn Đàn Người Việt Hải Ngoại. Tự do ngôn luận, an toàn và uy tín. Vì một tương lai tươi đẹp cho các thế hệ Việt Nam hãy ghé thăm chúng tôi, hãy tâm sự với chúng tôi mỗi ngày, mỗi giờ và mỗi giây phút có thể. VietBF.Com Xin cám ơn các bạn, chúc tất cả các bạn vui vẻ và gặp nhiều may mắn.
Welcome to Vietnamese American Community, Vietnamese European, Canadian, Australian Forum, Vietnamese Overseas Forum. Freedom of speech, safety and prestige. For a beautiful future for Vietnamese generations, please visit us, talk to us every day, every hour and every moment possible. VietBF.Com Thank you all and good luck.

Lên đầu Xuống dưới Lên 3000px Xuống 3000px

All times are GMT. The time now is 13:12.
VietBF - Vietnamese Best Forum Copyright ©2005 - 2025
User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Log Out Unregistered

Page generated in 0.11964 seconds with 15 queries