Błąd w skrypcie VB

0

Witam,
otóż próbuj uzyskać efekt echo w Windows Media Player. Poszukałem troche w necie i znalazłem ten kod:
Public Structure TEchoEffect
Public nLeftDelay As Integer
Public nLeftSrcVolume As Integer
Public nLeftEchoVolume As Integer
Public nRightDelay As Integer
Public nRightSrcVolume As Integer
Public nRightEchoVolume As Integer
End Structure

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim effect(2) As TEchoEffect

    effect(0).nLeftDelay = 2000
    effect(0).nLeftSrcVolume = 50
    effect(0).nLeftEchoVolume = 30
    effect(0).nRightDelay = 2000
    effect(0).nRightSrcVolume = 50
    effect(0).nRightEchoVolume = 30

    effect(1).nLeftDelay = 30
    effect(1).nLeftSrcVolume = 50
    effect(1).nLeftEchoVolume = 30
    effect(1).nRightDelay = 30
    effect(1).nRightSrcVolume = 50
    effect(1).nRightEchoVolume = 30

    AxWindowsMediaPlayer1.Ctlcontrols.SetEchoParam(effect, 2)
End Sub

Gdy klikam na przycisk, powinienem uzyskać efekt echo, ale zamiast tego wyskakuje błąd:
System.MissingMemberException: „Nie odnaleziono publicznego członka SetEchoParam dla typu IWMPControls3.”

Pomocy!

0

Po prostu musiałeś coś namieszać. Wrzuć link skąd masz ten kod. Co do wyjątku no to masz info, że po prostu dla tego typu nie ma takiej metody jak SetEchoParam. Wystarczy spojrzeć do dokumentacji i widać, że nie ma, wgl. tam składowe są pisane z małej.

0

No właśnie jest, ponieważ nie wywala błedu podczas pisania kodu, tylko dopiero podczas kompilacji. Jeśi napiszesz np. Button1.PlayAudio no to podkreśli ci błąd, nie? Jeśli sie myle to mnie popraw jbc.

0

No to w takim razie poprawiam. Wpisz sobie taki kod w tej Twojej metodzie dla buttona

AxWindowsMediaPlayer1.Ctlcontrols.Piotr_Szewczyk()

i zobacz czy Ci coś podkreśli czy nie i czy się skompiluje. (Kurcze wychodzi na to, że jest taka metoda Piotr_Szewczyk :) )

"nie wywala błedu podczas pisania kodu, tylko dopiero podczas kompilacji". Czy aby na pewno podczas kompilacji? Nie sądzę. No to teraz pytanie czym jest kompilacja, a czym uruchomienie programu.

0

Na mój gust to niemożliwe jest, byś do standardowej kontrolki musiał deklarować strukturę, którą później przekażesz jako parametr. Ona powinna być w tej bibliotece. Coś skopałeś. Pewnie coś z sourceforge chciałeś użyć...

0

Właśnie nie. Dodałem Windows Media Plaayer z biblioteki .NET

0

A co do tego @Manuel.Artificer
Miałeś racje :)

0

Nieistniejące metody przechodzące kompilację, samo generujące się struktury, bo przecież dodałeś tylko kontrolkę WMP :) Po prostu magia :)
Co do metody SetEchoParam no to tak jak mogłeś zauważyć nie istnieje w tej bibliotece. Pytanie dlaczego nic nie podkreśla i przechodzi kompilację? Ano dlatego, że w tym przypadku mamy do czynienia z typowaniem dynamicznym (wyjątek na to wskazuje). Po prostu kompilator pomija tą linijkę i dopiero w trakcie działania programu do akcji wkracza DLR, które próbuje dopasować odpowiedni typ, a jeżeli się to nie uda to rzuca wyjątek.

Jak już zakładasz wątek i chcesz uzyskać jakąś pomoc no to należałoby odpowiadać na zadawane pytania m.in. skąd masz ten kod, bo przecież napisałem żebyś wrzucił link. Jeżeli sam go zmontowałeś korzystając z różnych źródeł no to należałoby o tym napisać, a nie odpowiadać mi, że ta metoda istnieje, bo przecież nic nie podkreśla. To Tobie powinno zależeć, żeby uzyskać odpowiedź, a wychodzi na to, że to Ciebie trzeba by było ciągać za język żebyś coś więcej powiedział.

1 użytkowników online, w tym zalogowanych: 0, gości: 1