2016-02-15 3 views
6

Apple's documentation के अनुसार, ~/लाइब्रेरी/ध्वनि में ध्वनि फ़ाइल ध्वनि चलाने की कोशिश करते समय सिस्टम द्वारा खोज की जाएगी। मैं इस फ़ोल्डर में एक ध्वनि फ़ाइल कैसे जोड़ूं?मैं मुख्य बंडल/लाइब्रेरी/ध्वनि निर्देशिका में फ़ाइल कैसे जोड़ूं?

मैंने रनटाइम में फ़ोल्डर को लिखने की कोशिश की, लेकिन इसकी कोई अनुमति नहीं है। मैंने एक्सकोड में लाइब्रेरी/ध्वनि फ़ोल्डर जोड़ा लेकिन यह कॉपी करने की प्रतीत नहीं होता है।

enter image description here

xcode -> खिड़की -> उपकरणों, मेरे ऐप और दिखाने के कंटेनर का चयन करें, फ़ोल्डर नहीं देखते enter image description here

कुछ संदर्भ, मैं पार्स पुश अधिसूचना के लिए कस्टम ध्वनि कर रहा हूँ जोड़ने के लिए है। सर्वर लड़के ने मुझे बताया कि जब कई उपयोगकर्ताओं को प्रसारण करते हैं, तो प्रत्येक उपयोगकर्ता के लिए पेलोड में एक कस्टम ध्वनि स्ट्रिंग भेजना बहुत कठिन होगा। एक काम के रूप में, मैं एक एकल ध्वनि फ़ाइल का उपयोग करने की कोशिश कर रहा हूं जो हर बार जब उपयोगकर्ता नई ध्वनि का चयन करता है तो गतिशील रूप से अधिलेखित किया जाएगा।

इस प्रकार ध्वनि फ़ाइल को सिस्टम द्वारा स्वतः पता लगाया जाना चाहिए और ऐप द्वारा रन टाइम पर संशोधित किया जा सकता है। मुख्य बंडल में फ़ाइल जोड़ना काम नहीं करेगा क्योंकि यह केवल पढ़ा जाता है। मुझे आशा है कि ~/लाइब्रेरी/ध्वनि में एक फ़ाइल संपादन योग्य होगी।

मुझे नहीं पता कि इस बिंदु पर कैसे आगे बढ़ना है। किसी भी प्रकार की सहायता सराहनीय होगी।

अद्यतन: मैं गलत तरीके से

 try fileManager.createDirectoryAtPath("Library/Sounds", withIntermediateDirectories: true, attributes: nil) 

का उपयोग करके रन टाइम पर एक निर्देशिका बनाने के लिए सही कोड

 let libraryDir = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, true) 
     let directoryPath = "\(libraryDir.first!)/Sounds" 
     try fileManager.createDirectoryAtPath(directoryPath, withIntermediateDirectories: true, attributes: nil) 

My solution to the custom sound problem.

+0

पुश अधिसूचना पेलोड, उदाहरण के लिए, यदि सर्वर sound1.caf भेजता है, तो ऐप के बजाए sound2.caf खेलने का कोई तरीका नहीं है। जैसा कि मेरे प्रश्न में बताया गया है, सर्वर अलग-अलग उपयोगकर्ताओं को अलग ध्वनि स्ट्रिंग भेजने में असमर्थ है। – sage444

+0

समस्या कैश फ़ोल्डर में ध्वनि फ़ाइल पुश अधिसूचना ध्वनि – Cymric

उत्तर

4

लिंक आप मैक के लिए है कायम खेलते हैं! आईओएस के लिए सही दस्तावेज here

सारांश में, आप ऐप बंडल के एक गैर-संसाधित संसाधन के रूप में अपनी प्रोजेक्ट में ध्वनि फ़ाइल जोड़ सकते हैं।

+0

सुधार एलन के लिए धन्यवाद। फ़ाइल को सीधे मुख्य बंडल में जोड़ना काम नहीं करेगा क्योंकि फ़ाइल संपादन योग्य नहीं होगी। आपके द्वारा लिंक किया गया वेबपृष्ठ बताता है कि डेटा कंटेनर के लाइब्रेरी/ध्वनि फ़ोल्डर को सेब द्वारा स्वचालित रूप से पहचाना जाएगा और मुझे उम्मीद है कि इस निर्देशिका में फ़ाइलें संपादन योग्य होंगी। इस प्रकार मेरा सवाल यह पूछ रहा है कि इस निर्देशिका में फ़ाइल कैसे जोड़ें। मैं एक उत्तर को सही के रूप में चिह्नित करूंगा, भले ही लाइब्रेरी/ध्वनि में कोई फ़ाइल संपादन योग्य न हो, जब तक कि कोई मुझे बता सके कि यह कैसे करें। – Cymric

+0

@Cymric यदि आप लाइब्रेरी में रन-टाइम में फ़ाइलों को बनाने की तलाश में हैं, तो आपको यह SO पोस्ट देखना चाहिए: http://stackoverflow.com/questions/27216189/files-disappearing-from-nslibrarydirectory – Allen

+0

मुझे पता चला कि क्या मैंने उस प्रश्न से लाइब्रेरी में निर्देशिका बनाते समय गलत किया, यह मेरे लिए इसे इंगित करने के लिए है – Cymric

0

मैं ठीक उसी समस्या थी होना चाहिए की कोशिश की काम। मैं सुझाव दूंगा -

  1. अपनी परियोजना में कई ध्वनि फ़ाइलें हैं।
  2. उपयोगकर्ता के ध्वनि चयन को रोकें।
  3. आप पुश सूचना प्राप्त होने पर, ध्वनि का उपयोग कर आप क्या कदम 2.
+0

ध्वनि डिवाइस द्वारा निभाई में स्ट्रिंग द्वारा नियंत्रित किया जाता के लिए सेब के द्वारा पता लगाया नहीं किया जाएगा है का उपयोग करना चाहिए के लिए – Cymric

+0

आप पुश अधिसूचना पेलोड में स्ट्रिंग द्वारा "नियंत्रित" कह रहे हैं।लेकिन, सर्वर विभिन्न उपयोगकर्ताओं को अलग ध्वनि स्ट्रिंग भेजने में असमर्थ है। तो, पुश अधिसूचना पेलोड में स्ट्रिंग द्वारा इसे कैसे नियंत्रित किया जाता है? आपके पास एकाधिक ध्वनियां क्यों नहीं हैं और क्लाइंट पक्ष पर कुछ तर्क है जो ध्वनि बजाएगा। आप फाइलों को संपादित क्यों करना चाहते हैं? –

+0

जब फ़ोन रिमोट पुश अधिसूचना प्राप्त करता है, तो ओएस स्वचालित रूप से अधिसूचना के पेलोड में निर्दिष्ट ध्वनि फ़ाइल की खोज करता है और इसे चलाता है। इस प्रक्रिया को संशोधित करने के लिए ऐप का कोई तरीका नहीं है। जब अधिसूचना आती है तो ऐप भी नहीं चल रहा है। – Cymric

1

मैंने इसके साथ भी संघर्ष किया। आपको प्रोग्रामेटिक रूप से लाइब्रेरी/ध्वनि निर्देशिका बनाना है और अपनी कस्टम ध्वनि को इसमें ले जाना है।

let soundsDirectoryURL = fileManager.urls(for: .libraryDirectory, in: .userDomainMask).first!.appendingPathComponent("Sounds") 

//attempt to create the folder 
do { 
    try fileManager.createDirectory(atPath: soundsDirectoryURL.path, 
            withIntermediateDirectories: true, attributes: nil) 
} catch let error as NSError { 
    print("Error: \(error.localizedDescription)") 
} 
किसी भी अक्षय/संपादन योग्य संसाधनों आप कैश फ़ोल्डर
संबंधित मुद्दे