はじめに
- swiftUI Appで音楽を再生するものを作っています(App delegateではありません)
- ファイルとAppを関連付ける方法を探しています
- MacOS が対象です
実現したいこと
mp3などの音楽ファイルを**"ファインダーから自分のAppで開く"**という動作を実現したいです。
試したこと
info.plistなどが関係あるのかと調べたのですが、一向に手がかりが見つかりません。
具体的に試したことが説明できるほどないのですが、手がかりすらなく一向にわかる気配がないので、少しでも手がかりらしきものを教えていただけたら嬉しいです
補足
Document-Based Appを試してみました、AVAudioPlayerをデータから読み込み再生することができました。丁寧に有難う御座います。
よろしければ、再度アドバイスをいただけないでしょうか。
ファイルのURLを一緒に取得したくて
let audio = AVAudioPlayer(data: data)
let url: URL = audio.url
と試したのですがデータ読み込むとurlがない様子で
また、configuration.file.regularFileContentsから直接urlを取得する方保を探したのですがわからず
どうurlを取得したらいいか探しています。
補足情報(FW/ツールのバージョンなど)
- os Big Sur 11.2
- Xcode 12.4
ドキュメントベース App について調べてみては。
https://developer.apple.com/jp/document-based-apps/
ありがとうございます。Document-basedを試してみたところ開くという動作が実現できて一歩前進できました。
再生アプリってことは編集しないでしょうから、document type の role を viewer にするといいかも。
https://developer.apple.com/documentation/appkit/documents_data_and_pasteboard/developing_a_document-based_app
試してみました、AVAudioPlayerをデータから読み込み再生することができました。丁寧に有難う御座います。
よろしければ、再度アドバイスをいただけないでしょうか。
ファイルのURLを一緒に取得したくて
let audio = AVAudioPlayer(data: data)
let url: URL = audio.url
と試したのですがデータ読み込むとurlがない様子で
また、configuration.file.regularFileContentsから直接urlを取得する方保を探したのですがわからず
どうurlを取得したらいいか探しています。
data は単なるバイト列なので、url やファイル名などの情報を持ちません。
たぶん NSDocument があると思うので、そいつの fileURL を使いましょう。
https://developer.apple.com/documentation/appkit/nsdocument/1515038-fileurl
何度も丁寧にありがとうございます。
確かにconfigurationにはUTTypeとFileWrapperのみで、Document-Basedでは難しそうでした。
NSDocumentのヒントからCore DataとNSDocumentを使う方法がありそうと知ることができましたが、現状難しいと感じたので、一度NSOpenPanelとDragAndDropを使用するのみに留めて完成とします。
もらったヒントから、Document-Basedの使い方とCore Dataの使い方それぞれを練習してのちもう一度チャレンジします。
本当に何度もありがとうございました。
