2013-02-20 1 views
3

Я хочу создать приложение для Android, в котором устройство Android работает как сервер (приемник) и устройство iOS в качестве клиента (отправителя). Я последовал за this ссылкой. Но здесь вы должны сначала зарегистрироваться в порт, чтобы выступать в качестве опции AirPlay на IOS устройства из командной строки с помощью:Airplay in android device

mDNS -R MyAirplayService _airplay._tcp local 22555 

Когда я запускаю этот код Java я могу увидеть значок AirPlay на устройстве IOS. Но как это можно сделать в устройстве Android? Есть ли какой-либо открытый исходный код или библиотека для этого?

ответ

0

Если я не ошибаюсь, Airplay - это API только для Apple. Я пробовал заставить его быть узнаваемым на андроиде, и я был в значительной степени неудачным. Возможно, вам захочется рассмотреть другой способ передачи потокового аудио.

+0

https://play.google.com/store/apps/details?id=eu.airaudio&hl=ru Это было выпущено сегодня - возможно, вы захотите его проверить. – dokun1

0

Я бы рассмотрел утилиты Эрика Садун. Я могу ошибаться, но я думаю, что они с открытым исходным кодом. Она написала сервер, плеер/передатчик и т. Д. Для AirPlay.

http://ericasadun.com/category/airplayer/

1

Этот код в основном зарегистрировав услугу TCP AirPlay в локальной сети, так что любой другой IOS устройств на одной и той же локальной сети могут обнаружить эту услугу AirPlay, и поэтому показывать иконку AirPlay в качестве опции.

  • В прошивке, это может быть сделано с помощью Bonjour/NSNetService. Пожалуйста, обратитесь к официальному руководству Apple.

    NSNetService *service; 
    service = [[NSNetService alloc] initWithDomain:@""// 1 
              type:@"_airplay._tcp" 
              //this will show up as the airplay name 
              name:@"myiOSAirplayServer" 
              port:port]; 
    if(service) 
    { 
        [service setDelegate:delegateObject];// 2 
        [service publish];// 3 
    } 
    else 
    { 
        NSLog(@"An error occurred initializing the NSNetService object."); 
    } 
    
  • В Android, это может быть сделано с помощью Network Service Discovery, а официальный пример здесь:

    public void registerService(int port) { 
        NsdServiceInfo serviceInfo = new NsdServiceInfo(); 
        //this will show up as the airplay name 
        serviceInfo.setServiceName("myAndroidAirplayServer"); 
        serviceInfo.setServiceType("_airplay._tcp."); 
        serviceInfo.setPort(port); 
    
        mNsdManager = Context.getSystemService(Context.NSD_SERVICE); 
    
        mNsdManager.registerService(
         serviceInfo, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener); 
    } 
    

Однако это только регистрирует службу в локальной сети, и дает вам значок на устройстве iOS. Чтобы сделать настоящий сервис airplay server/mirroring, вам нужно сделать намного больше. Если вы хотите это знать, проверьте мое приложение iOS, которое работает как сервер зеркального отображения Airplay, https://www.youtube.com/watch?v=0d6ggJMypIk. Существует также проект с открытым исходным кодом, написанный на языке python, называемый PyOpenAirMirror.

+0

Сайт учебника iOS находится здесь: https://developer.android.com/training/connect-devices-wirelessly/nsd.html#discover и сайт документации по Android: https://developer.android.com/training/connect -devices-беспроводное/nsd.html # обнаружить – cllw