2 Stimmen

Ton und Nstimer angehalten, wenn das iPhone im Tiefschlafmodus ist?

Ich erstelle eine Anwendung, in der ich nstimer und avaudioplayer verwende, um Sound abzuspielen, aber sowohl Sound als auch Timer stoppen, wenn sich das Telefon im Tiefschlafmodus befindet. wie kann ich dieses Problem lösen?

Hier ist der Code zum Abspielen von Audio

-(void)PlayTickTickSound:(NSString*)SoundFileName
{
//Get the filename of the sound file:
NSString *path = [NSString stringWithFormat:@"%@%@",[[NSBundle mainBundle] resourcePath],[NSString stringWithFormat:@"/%@",SoundFileName]];// @"/Tick.mp3"];
//Get a URL for the sound file
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
NSError *error;
if(self.TickPlayer==nil)
{
    self.TickPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:filePath error:&error];
    // handle errors here.
    self.TickPlayer.delegate=self;
    [self.TickPlayer setNumberOfLoops:-1];  // repeat forever
    [self.TickPlayer play];
}
else
{
    [self.TickPlayer play];
}
}

4voto

Brian Stormont Punkte 1179

Um zu verhindern, dass eine Anwendung in den Ruhezustand geht, wenn der Bildschirm gesperrt ist, müssen Sie Ihre Audiositzung auf den Typ kAudioSessionCategory_MediaPlayback einstellen.

Hier ist ein Beispiel:

UInt32 category = kAudioSessionCategory_MediaPlayback;
OSStatus result = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
                                        sizeof(category), &category);

if (result){
    DebugLog(@"ERROR SETTING AUDIO CATEGORY!\n");
}

result = AudioSessionSetActive(true);
if (result) {
    DebugLog(@"ERROR SETTING AUDIO SESSION ACTIVE!\n");
}

Wenn Sie die Audiositzungskategorie nicht festlegen, wird Ihre Anwendung in den Ruhezustand versetzt.

Dies verhindert nur, dass die App in den Ruhezustand versetzt wird, solange Sie die Audiowiedergabe fortsetzen. Wenn Sie die Audiowiedergabe beenden und der Bildschirm immer noch gesperrt ist, wird die App in den Ruhezustand versetzt und Ihre Timer werden pausiert.

Wenn Sie möchten, dass die App auf unbestimmte Zeit wach bleibt, müssen Sie eine "stille" Audiodatei abspielen, um sie wach zu halten.

Ich habe hier ein Beispiel für diesen Code: Verhinderung von iPhone-Schlaf

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X