2012-03-23 10 views
5

Mam aplikację do odtwarzania muzyki, używając tagu PhoneGap i html5 do odtwarzania dźwięku na iOS. wcześniej mógł odtwarzać muzykę w tle doskonale (z PhoneGap 1.0.0 na iOS), ale po uaktualnieniu PhoneGap do wersji 1.5.0 (Cordova), nie mogę go już odtworzyć w tle.Jak w aplikacji odtwarzać dźwięk w tle (phonegap 1.5.0 na iOS)?

Po naciśnięciu przycisku HOME dźwięk zostanie wstrzymany. Gdy przełączyłem się z powrotem do aplikacji, wznawia się.

Ustawiłem już Required background modes w Info.plist o wartości audio.

Czy jest coś, co przeoczyłem? Dziękuję Ci.

Odpowiedz

3

W pliku MainController.h zmienić następujące:

#import "MainViewController.h" 
#import <AVFoundation/AVFoundation.h> 

@implementation MainViewController 

- (id) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 

     NSError *setCategoryError = nil; 
     [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError]; 

    } 
    return self; 
} 

Nie jestem pewien, czy po to konieczne, ale ja oczyściłem mój projekt (CMD + ALT + K), zrekompilowane z PhoneGap/Cordova Lib (zmień cel i pozwól mu uruchomić się na symulator) i (po zmianie celu ponownie) skompilowany do aplikacji jeszcze raz, a teraz działa!

Strzeż: to działa tylko na urządzenie, a nie na symulatorze

+0

To daje błąd na AVAudioSession jeśli nie upewnij się, aby dodać #import

+0

nie ma niestety także działa na najnowszej wersji phonegap –

+0

to nie działa –

0

Oprócz odpowiedzi @Ayame __ 's zauważyłem, że aplikacja może być wysłany od tła na tryb zawieszony podczas próby pominąć utwory (w sposób aplikacja radiowa lub lista odtwarzania).

Napisałem prosty plugin, które można znaleźć tutaj - https://github.com/vadimf/phonegap-audio-payer

Powiązane problemy