• Thứ Ba, 23/12/2003 11:05 (GMT+7)

    Câu hỏi :
    Cách nào để xác định 1 vị trí trong file MP3 đang chơi theo thời gian tính bằng giây, và từ 1 số giây cho trước, xác định ngược trở lại vị trí trong file MP3? Ví dụ : 1 file MP3 dài 3 phút 30 giây = 210 giây, dùng 1 scrollbar có thể xác định được vị trí tức thời theo giây nhưng làm sao để xác định vị trí trong file MP3 tương ứng.

    Trả lời :

    Cách hiển nhiên nhất để xác định vị trí đang chơi trong file MP3 và thiết lập lại vị trí khác để tiếp tục chơi là phải nắm vững format của file MP3. Tuy nhiên việc nắm vững format file MP3 và qui trình xử lý file này khá khó khăn đối với người bình thường. Cách khác dễ dàng hơn là sử dụng linh kiện phần mềm sẵn có chuyên xử lý file MP3, ví dụ Microsoft có cung cấp kèm theo WinMe và Win2000 một ActiveX Control xử lý file multimedia có tên là “Windows Media Player”. Bạn có thể nhúng ActiveX control này vào bất kỳ phần mềm nào được viết bằng VB hay VC++. Sau khi có linh kiện phần mềm này trong chương trình (giả sử ta nhúng linh kiện này vào 1 form VB với tên là MediaPlayer1), bạn có thể truy xuất các thuộc tính và method sau đây để giải quyết vấn đề của mình :

    ‘ Thiết lập file MP3 để chơi

    Dim Count As Long

    MediaPlayer1.FileName = “c:\MP3\grenouile1.mp3”

    ...

    ‘ Xác định tổng độ dài thời gian chơi file

    If

    MediaPlayer1.IsDurationValid

    Then

    Count =

    MediaPlayer1.Duration / 60

    MsgBox “File này chơi tốn “ + Str(Count) + “ phút”

    End If

    ...

    ‘ Xác định vị trí đang chơi file

    Count =

     MediaPlayer1.CurrentPosition

    MsgBox “Đã chơi được “ + Str(Count) + “ giây”

    ...

    ‘ Dời điểm chơi tiếp về vị trí 500s

    MediaPlayer1.Stop

    MediaPlayer1.CurrentPosition = 500

    MediaPlayer1.Play

    Chuyên mục: Lập trình