2014-09-13 2 views
4

Я довольно новичок в iOS, исходящей от Android. Мне немного сложно понять всю связь с файлом и mime. Это немного запутанно ... Я искал все образцы, и я просто больше смутился.Ассоциация воспроизведения плейлистов/аудио файлов из браузера не работает

По существу, чтобы начать работу, я хочу поддержать всплывающие плейлисты m3u из браузера, электронной почты и файловых браузеров ... в моем приложении. Следующая информация - это то, что обычно видно для плейлиста m3u.

Uri схема
файл или HTTP

Мим
аудио/х-mpegurl, аудио/mpegurl, применение/х-Winamp-список воспроизведения, аудио/scpls, аудио/x- scpls

расширение файла
.m3u с потенциалом запроса в конце, такие как .m3u? ID = 21312312


UPDATE 1
объединение файлов, похоже, работает частично. В настоящее время, нажав на любую из станций из каталога IceCast, они открываются браузером. Однако, если я напишу сам себе файл списка воспроизведения, приложение электронной почты сможет предоставить мне возможность открыть плейлист в моем приложении.

Вот мой обновленный файл plist.

<key>CFBundleDocumentTypes</key> 
    <array> 
     <dict> 
      <key>CFBundleTypeIconFiles</key> 
      <array/> 
      <key>CFBundleTypeName</key> 
      <string>Playlists</string> 
      <key>CFBundleTypeRole</key> 
      <string>Viewer</string> 
      <key>LSItemContentTypes</key> 
      <array> 
       <string>com.vblast.xiialive.playlist</string> 
      </array> 
     </dict> 
    </array> 
<key>UTExportedTypeDeclarations</key> 
    <array> 
     <dict> 
      <key>UTTypeConformsTo</key> 
      <array> 
       <string>public.url</string> 
       <string>public.file-url</string> 
       <string>public.filename-extension</string> 
       <string>public.mime-type</string> 
      </array> 
      <key>UTTypeDescription</key> 
      <string>Playlists</string> 
      <key>UTTypeIdentifier</key> 
      <string>com.vblast.xiialive.playlist</string> 
      <key>UTTypeTagSpecification</key> 
      <dict> 
       <key>public.filename-extension</key> 
       <array> 
        <string>m3u</string> 
        <string>pls</string> 
        <string>asx</string> 
       </array> 
       <key>public.mime-type</key> 
       <array> 
        <string>audio/playlist</string> 
        <string>audio/mpegurl</string> 
        <string>audio/x-mpegurl</string> 
        <string>audio/m3u</string> 
        <string>x-winamp-playlist</string> 
        <string>application/x-winamp-playlist</string> 
        <string>audio/x-scpls</string> 
        <string>video/x-ms-asf</string> 
       </array> 
      </dict> 
     </dict> 
    </array> 
+0

Кажется странным, что его использование public.audio для файла m3u. Разве это не должно быть: public.text и public.playlist? Кроме того, можете ли вы публиковать какие-либо ошибки или подтвердить, что вы не получаете какие-либо из них? – LoghamLogan

+0

Я не вижу никаких ошибок. Браузер просто открывает файл и пытается его воспроизвести ....:/Я попытался добавить public.text и public.playlist, но не имел никакого различия. Я определенно не понимаю ничего о типах документов и экспортированных UTI. Возможно, мне понадобится какой-то общий тип открытых файлов для начала работы. – Jona

+0

Я не думаю, что есть способ предотвратить сафари от автоматического открытия любого файла, который он может, а в случае с фильмами и видео он не даст вам возможность играть в другое приложение. Лучшее решение, о котором я могу думать, будет создавать плагин с плагинами для совместного использования сафари, который при активации будет сканировать страницу для любых ссылок .m3u и изменить их все на пользовательскую ссылку, открывающую ваше приложение. – TyloBedo

ответ

0

Ваш браузер, скорее всего, открывая себя, потому что он может в .m3u файлы, однако ваш почтовый клиент не может, так что будет воспитывать список возможных соответствующих приложений. В этом месте появляется ваше приложение.

Однако вы можете попробовать реализовать этот код в HTML-файл с помощью JQuery

$(document).ready(function() { 
    var user_agent_header = navigator.userAgent; 

    if(user_agent_header.indexOf('iPhone')!=-1 || user_agent_header.indexOf('iPod')!=-1 || user_agent_header.indexOf('iPad')!=-1){ 
     setTimeout(function() { window.location="playlistApp://www.mydomain.com/files/myplaylist.m3u";}, 25); 
    } 

}); 

код, взятый из How to open iOS app from browser?

+0

Спасибо, что написали ответ. К сожалению, я не ищу решение для веб-страниц, так как я не являюсь владельцем какой-либо из этих радиостанций. Я просто пытаюсь сказать ОС, что могу их воспроизвести, и отправить их в свое приложение ... – Jona

Смежные вопросы