Generic Video Player

De DigiWiki.

// Generic Video Player v1.0
 
integer channel_dialog;
list buttons = ["Off"];
integer face = 4;
key ToucherID;
string message;
integer listenID;
string category;
 
get_categories()
{
    integer n = 0;
    while (llGetInventoryName(INVENTORY_NOTECARD,n) != "")
    {
        buttons = buttons + llGetInventoryName(INVENTORY_NOTECARD,n);
        ++n;
    } 
}
 
get_videoList(string category)
{
    integer NumLines = osGetNumberOfNotecardLines(category);
    integer n;
    for(n=0;n<NumLines;n=n+2)
    {
        string NoteCardLine = osGetNotecardLine(category,n);
        if (NoteCardLine != "")
        {
            buttons = buttons + NoteCardLine;
        }
    } 
}
 
play_video(string vid_url)
{
    llSetPrimMediaParams(face, 
        [
            PRIM_MEDIA_ALT_IMAGE_ENABLE, 1,
            PRIM_MEDIA_CURRENT_URL, vid_url,
            PRIM_MEDIA_AUTO_LOOP, 1,
            PRIM_MEDIA_AUTO_PLAY, 1,
            PRIM_MEDIA_AUTO_SCALE, 1,
            PRIM_MEDIA_PERMS_CONTROL, PRIM_MEDIA_PERM_NONE
        ]);
}
 
string get_video(string title)
{
    integer NumLines = osGetNumberOfNotecardLines(category);
    integer n;
    for(n=0;n<NumLines;++n)
    {
        string NoteCardLine = osGetNotecardLine(category,n);
        if (NoteCardLine == title)
        {
            NoteCardLine = osGetNotecardLine(category,n+1);
            return NoteCardLine;
        }
    }
    return "";
}
 
default
{
    state_entry()
    {
        llClearPrimMedia(face);
        channel_dialog = -1 - (integer)("0x" + llGetSubString( (string)llGetKey(), -7, -1) );
        state main_menu;
    }
}
 
state main_menu
{
    state_entry() 
    {
        buttons = ["Off"];
        message = "\nChoose a category.";
        get_categories();
    }
 
        touch_start(integer num_detected)
        {
            ToucherID = llDetectedKey(0);
            llDialog(ToucherID, message, buttons, channel_dialog);
            listenID = llListen(channel_dialog, "", ToucherID, "");
        }
 
        listen(integer channel, string name, key id, string message)
        {
            if (message == "Off")
            {
                state default;
            }
            else
            {
                category = message;
                state sub_menu;
            }
        }
}
 
state sub_menu
{
    state_entry()
    {
        buttons = ["Off"];
        message = "\nChoose a video.";
        get_videoList(category);
        llDialog(ToucherID, message, buttons, channel_dialog);
        listenID = llListen(channel_dialog, "", ToucherID, "");
    }
 
    listen(integer channel, string name, key id, string message)
    {
        if (message == "Off")
        {
            state default;
        }
        else
        {
            play_video(get_video(message));
        }
        state main_menu;
    }
}

NoteCard

Video1
http://www.mysite.com/myvideos/video1.mp4
Video2
http://www.mysite.com/myvideos/video2.mp4
Outils personnels
  • Cette page a été consultée 408 fois.
donate
Google Ads