• Skip to main content
  • Skip to primary sidebar
  • Skip to footer

Foliovision

  • Weblog
    • FV Player
    • WordPress
    • Video of the Week
    • Case Studies
    • Business
  • About
    • Testimonials
    • Meet the Team
    • We Support
    • Careers
    • Contact
    • Pricing
  • Products
  • Support
    • FV Player Docs
    • Pro Support
  • Login
  • Basket is empty

FV Player in iPhone/iPod touch + access control

[Solved]

Foliovision › Forums › FV Player › Troubleshooting › FV Player in iPhone/iPod touch + access control

  • Cyranoz 13 years, 10 months ago

    Hi,

    I have installed the beta version of FV Flowplayer with HTML5. I’m also using the plugin User Access Manager to protect the “upload” directory. When a video stored within that directory is requested, the player won’t work on the iPhone/iPod touch. Otherwise, the player works like a charm.

    Everytime a video is requested from within the “upload” directory, a script within UAM plugin checks that the user has access to that video and if so, “delivers” the content. So I figured there might be a problem with the way this content is “delivered”.

    After a quick search on the net, I discovered this website http://mobiforge.com/developing/story/content-delivery-mobile-devices (see Appendix A) explaining what needs to be done when we want to deliver the video from a php script.

    I have made the necessary changes, but it still doesn’t work… If someone can help, it would be great.

    Here is an extract of the function from UAM plugin delivering the content of the file :

    public function getFile($objectType, $objectUrl)
    {
    $object = $this->_getFileSettingsByType($objectType, $objectUrl);

    if ($object === null) {
    return null;
    }

    $file = null;

    if(!is_user_logged_in()) {
    $url_redir = home_url(‘/login/?redirect_to=’.urlencode(home_url(‘/wp-content/uploads/’).$objectUrl));
    wp_redirect($url_redir);
    exit;
    }
    else {

    if ($this->getAccessHandler()->checkObjectAccess($object->type, $object->id)) {
    $file = $object->file;
    } elseif ($object->isImage) {
    $file = UAM_REALPATH.’gfx/noAccessPic.png’;
    } else {
    //wp_die(TXT_UAM_NO_RIGHTS);
    $url_redir = home_url();
    wp_redirect($url_redir);
    exit;
    }

    } // end test is_user_logged_in

    //Deliver content
    if (file_exists($file)) {
    $fileName = basename($file);

    /*
    * This only for compatibility
    * mime_content_type has been deprecated as the PECL extension Fileinfo
    * provides the same functionality (and more) in a much cleaner way.
    */
    $ext = strtolower(array_pop(explode(‘.’, $fileName)));

    if (function_exists(‘finfo_open’)) {
    $finfo = finfo_open(FILEINFO_MIME);
    $fileMimeType = finfo_file($finfo, $file);
    finfo_close($finfo);
    } elseif (function_exists(‘mime_content_type’)) {
    $fileMimeType = mime_content_type($file);
    } elseif (array_key_exists($ext, $this->mimeTypes)) {
    $fileMimeType = $this->mimeTypes[$ext];
    } else {
    $fileMimeType = ‘application/octet-stream’;
    }

    // cnocno –>

    if (!isset($_SERVER)) { // Desktop computer

    // <– cnocno

    header(‘Content-Description: File Transfer’);
    header(‘Content-Type: ‘.$fileMimeType);

    if (!$object->isImage) {
    $baseName = str_replace(‘ ‘, ‘_’, basename($file));

    header(‘Content-Disposition: attachment; filename=”‘.$baseName.'”‘);
    }

    header(‘Content-Transfer-Encoding: binary’);
    header(‘Content-Length: ‘.filesize($file));

    $uamOptions = $this->getAdminOptions();

    if ($uamOptions == ‘fopen’
    && !$object->isImage
    ) {
    $fp = fopen($file, ‘r’);

    //TODO find better solution (prevent ‘n’ / ‘0A’)
    ob_clean();
    flush();

    while (!feof($fp)) {
    if (!ini_get(‘safe_mode’)) {
    set_time_limit(30);
    }
    $buffer = fread($fp, 1024);
    echo $buffer;
    }

    exit;
    } else {
    ob_clean();
    flush();
    readfile($file);
    exit;
    }

    // cnocno –>

    }

    else { // do it for any device that supports byte-ranges not only iPhone

    header(‘Content-Type: ‘.$fileMimeType);
    rangeDownload($file);

    }

    // <– cnocno

    } else {
    wp_die(TXT_UAM_FILE_NOT_FOUND_ERROR);
    }
    }

    where the code between “cnocno –>” and “<– cnocno” are changes I made myself and the function “rangeDownload” is taken from the link above.

    I know I’m asking to much, but if someone already encountered this problem and managed to solve it, I’d be very interested to know how! :)

    Thanks for any help.

    C.

Viewing 1 replies (of 1 total)
  • zdenka 14 years ago

    Hello Cyranoz,

    this is a very specific problem and it cannot be generally solved within out plugin, so I am sorry we cannot help here. But maybe you’ll me lucky and as you write somebody else having the same problem might help you.

    Zdenka

Viewing 1 replies (of 1 total)
Reply To: FV Player in iPhone/iPod touch + access control



Please Sign in or Register to upload files.

Related Posts

  1. CloudFront Restrict Viewer Access CORS Problem

    CloudFront Restrict Viewer Access CORS Problem

  2. Cannot access widgets page because of fvplayer wizzard error

    Cannot access widgets page because of fvplayer wizzard error

  3. Admin warning on video

    Admin warning on video

Primary Sidebar

Troubleshooting

    Categories

    • Business
    • Camera Reviews
    • Case Studies
    • Design
    • FV Player
    • Internet Marketing
    • IT
    • Life
    • SEO
    • Slovak
    • Video of the Week
    • WordPress

    Footer

    Our Plugins

    • FV WordPress Flowplayer
    • FV Thoughtful Comments
    • FV Simpler SEO
    • FV Antispam
    • FV Gravatar Cache
    • FV Testimonials

    Free Tools

    • Pandoc Online
    • Article spinner
    • WordPress Password Finder
    • Delete LinkedIn Account
    • Responsive Design Calculator
    Foliovision logo
    All materials © 2026 Foliovision s.r.o. | Panská 12 - 81101 Bratislava - Slovakia | info@foliovision.com
    • This Site Uses Cookies
    • Privacy Policy
    • Terms of Service
    • Site Map
    • Contact
    • Tel. ‭+421 2/5292 0086‬