Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Maza Faka
Цитата:
как можно проиграть плейлист?
Это не так уж просто, я сам начал давненько писать плеер, всё никак не осмелюсь его закончить, чтобы ты более менее представлял себе структуру подобного плеера (в моём стиле ), вот тебе пример с добавлением в плей лист как отдельных треков, так и плейлист-файла (*.m3u) - для считывания плейлист-файла я написал функцию обработки строк (_M3uToArray()), все пути к файлам треков считываются в массив...

Код: Выделить весь код
#include <GUIConstants.au3>
#include <GuiListView.au3>
#include <Array.au3>

GUICreate("Player", 300, 200, -1, -1, -1)
GUISetIcon(@ProgramFilesDir & "\Winamp\winamp.exe", 0)

$Playlist = GUICtrlCreateListView("File Name|Path", 20, 50, 260, 120)

$Play = GUICtrlCreateButton("Play", 20, 10, 60)
$Open = GUICtrlCreateButton("Open", 110, 10, 60)

GUISetState()

While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $Open
            $OpenFile = FileOpenDialog("Add selected file", "", "Sound files (*.mp3;*.m3u)", 1)
            If @error Then ContinueLoop

                        Local $FilesArray[2] = [1, $OpenFile]
            If StringRight($OpenFile, 3) = "m3u" Then $FilesArray = _M3uToArray($OpenFile)

                        For $i = 1 To UBound($FilesArray)-1
                $FileName = StringRegExpReplace($FilesArray[$i], "^.*\\", "")
                GUICtrlCreateListViewItem($FileName & "|" & $FilesArray[$i], $PlayList)
            Next
        Case $msg = $Play
            $Selected = _GUICtrlListViewGetItemText($PlayList, -1, 1)
            If $Selected <> "" Then
                SoundPlay($Selected, 0)
            Else
                MsgBox(64, "Error", "Please select file")
            EndIf
        Case $msg = $GUI_EVENT_CLOSE
            Exit
    EndSelect
WEnd

Func _M3uToArray($M3uPath)
    If StringRight($M3uPath, 4) <> ".m3u" Or Not FileExists($M3uPath) Then Return -1
    Local $OpenM3u = FileOpen($M3uPath, 0), $M3uArr[1]
    While 1
        $CurrentLine = FileReadLine($OpenM3u)
        If @error = -1 Then ExitLoop
        If StringLeft($CurrentLine, 4) <> "#EXT" Then _ArrayAdd($M3uArr, $CurrentLine)
    WEnd
    FileClose($OpenM3u)
    $M3uArr[0] = UBound($M3uArr) - 1
    Return $M3uArr
EndFunc
P.S
Чтобы после проигрывания одного трека начал проигрываться другой, нужно использовать библиотеку Sound.au3, там есть функции для определения статуса текущей песни, перемотка песни, ну и в принцепе все основные функции требуемые для примитивного плеера

amel27
Цитата:
Исправленный вариант с расширенными комментариями
Биг сенкс! Возвращается имя обьекта как положенно!

geka6pucT
Цитата:
Как можно с помощью AutoIt3 использовать обычный Twain сканнер?
А подробнее можно? “использовать” можно понять по разному

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 31-07-2007 в 04:43. Причина: Добавление P.S ;)


Отправлено: 04:04, 31-07-2007 | #215