اي فون - AVAudioPlayer، kAudioSessionCategory_AmbientSound والموسيقى آي بود

StackOverflow https://stackoverflow.com/questions/872001

  •  22-08-2019
  •  | 
  •  

سؤال

وأنا باستخدام الدورة الصوت التالية في بلدي مندوب التطبيق:

  AudioSessionInitialize(NULL, NULL, NULL, self);
  UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
  AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);

  AudioSessionSetActive(true);

وأريد المستخدم لتكون قادرة على لعب الموسيقى آي بود واستخدام التطبيق الخاص بي في نفس الوقت، وهو أمر عظيم ويعمل بشكل جيد ... بلدي التطبيق الانحناء للخارج ويسمح الموسيقى آي بود للعب.

وقضية أواجه هو ... بعد ينهي المستخدم التطبيق الخاص بي، يذهب الى التطبيق بود وتوقف، وعندما أعود إلى بلدي التطبيق، فإن أيا من بلدي الأصوات العمل. انها مثل ذلك لا يزال يعتقد الدورة بود نشطة، على الرغم من أنها لا تلعب أي الموسيقى!

وأنا أساسا لا يريدون سوى لإعادة تنشيط الدورة الصوت بلدي بعد تم إيقاف الموسيقى آي بود. كما هو عليه، بعد أن قمت <م> من أي وقت مضى عبت الموسيقى عبر التطبيق بود، أنا غير قادر تماما للحصول على بلدي التطبيق يبدو مرة أخرى إلا أنني إعادة ترجمة. :( أي شخص يحصل على أي أفكار؟

وتحرير: نسيت أن أذكر أنا باستخدام تنفيذ الأساسي للطبقة AVAudioPlayer لتشغيل الصوت بلدي التطبيق

وشكرا!

هل كانت مفيدة؟

المحلول

وحسنا بس كنت ابقاء الجميع شارك في حال يساعد شخص آخر ... ما فعلته كان ربما نوع من hackish، ولكن يبدو أن تفعل خدعة!

    UInt32 isPlaying;
    UInt32 propertySize = sizeof(isPlaying);
    OSStatus status;

    // check to see if their iPod music is playing
    status = AudioSessionGetProperty(kAudioSessionProperty_OtherAudioIsPlaying, &propertySize, &isPlaying);

    // set the session category accordingly
    if(!isPlaying) {
      NSLog(@"...SoloAmbientSound");
      UInt32 sessionCategory = kAudioSessionCategory_SoloAmbientSound;
      AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
    }else{
      NSLog(@"...AmbientSound");
      UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
      AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
    }

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top