2016-04-24 3 views
1

Ich mache gerade ein Projekt, wo ich das Affectiva SDK verwenden muss, um einige Videos zu analysieren, die ich aufgenommen habe. Ich habe die Dateien heruntergeladen, die sie mir gegeben haben, und habe begonnen, den Code für das SDK zu schreiben, aber beim Aufruf der Callback-Funktionen in meinem Code scheint Visual Studio die Argumente, die eingefügt werden, nicht zu akzeptieren dass die Schnittstellen für die Callback-Funktionen ausgeführt werden müssen. Ich weiß jedoch nicht genau, wie das geht, da ich dachte, dass dies alles in ihrem Assembler-Code gemacht wurde. Mein Code so sieht weit wie folgt aus:Affdex videodetector

using System; 
using System.Collections.Generic; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Threading.Tasks; 
using System.Windows; 
using Affdex; 


namespace ConsoleApplication2 
{ 
class Program 
{ 
    public interface FaceListener { } 
    public interface ImageListener { } 
    public interface ProcessStatusListener { } 

    static void Main(string[] args) 
    { 
     VideoDetector detector = new VideoDetector(15); 

     String licensePath = "C:/Users/hamud/Desktop/[email protected]"; 
     detector.setLicensePath(licensePath); 

     String classifierPath = "C:/Programmer/Affectiva/Affdex SDK/data"; 
     detector.setClassifierPath(classifierPath); 

     detector.setFaceListener(this); 
     detector.setImageListener(this); 
     detector.setProcessStatusListener(this); 

     detector.setDetectSmile(true); 
     detector.setDetectSurprise(false); 
     detector.setDetectBrowRaise(false); 
     detector.setDetectAnger(false); 
     detector.setDetectDisgust(false); 
     detector.setDetectAllExpressions(false); 

     detector.start(); 

     detector.stop(); 
    } 
} 

}

Soweit ich weiß, ich habe für den Schnittstellen-Code zu schreiben, wenn ich mich nicht irre ... Oder muss ich? Bitte helfen Sie.

Antwort

0

Hier ist ein tutorial auf den ersten Schritt, um die Videodateien zu analysieren.

Soweit ich weiß, muss ich Code für die Schnittstellen schreiben, wenn ich mich nicht irre ... Oder soll ich?

Nein, tun Sie nicht. Sie müssen nur die Methoden in den Schnittstellen implementieren, wenn Sie sie verwenden. Hier

ist der Link auf die Beispielanwendung, die Kamera-Detektor verwendet, die Sie sich beziehen können, da sowohl die Kamera-Detektor und der Videodetektor implementieren die FaceListener, ProcessListener und ImageListener Schnittstellen.

EDIT: Sie müssen die Listener implementieren. Im Codebeispiel verwenden Sie beispielsweise den FaceListener, sodass Sie die Implementierung für die Callbacks viz onFaceFound() und onFaceLost() schreiben müssen.

Sie können auch ein Objekt von processStatusListener und warten auf den Prozess beenden für eine Videodatei, so etwas erstellen möchten:

AffdexProcessStatusListener processStatusListener = new AffdexProcessStatusListener(); 
processStatusListener.wait(); 

Hier ist ein Link zu unserem C# app AffdexMe die CameraDetector verwendet. Sie können Beispiele für CameraDetector, PhotoDetector, VideoDetector und FrameDetector in unserem getting started guide finden.

+0

Ich habe das Tutorial ausprobiert, aber ich kann es nicht funktionieren. Übrigens, auf welchen Link für den Kameradetektor beziehen Sie sich? –

+0

@MartinMansour: Ich habe die Antwort oben bearbeitet, bitte schauen Sie. –

+0

@MartinMansour hat dies Ihr Problem gelöst? –