Iphone 从核心数据调用tableview中的音频

Iphone 从核心数据调用tableview中的音频,iphone,uitableview,core-data,audio,path,Iphone,Uitableview,Core Data,Audio,Path,我想让用户在tableview中点击一个单元格并听到音频。单元格的信息是从核心数据加载的,因此我假设我将核心数据中音频文件的路径作为类型为“string”的属性 我完全不知道从这里到哪里去。我如何称呼路径?经过长时间的搜索,我还没有找到太多关于这个主题的信息,所以非常感谢您的帮助 你的问题很广泛。对于您来说,最好的入门方法是通过苹果的avTouch示例进行学习。它将向您展示如何加载和播放音频文件。您应该只将文件名存储在托管对象中,然后每次重建文件路径 在iOS中,应用程序目录的名称只是一个UUI

我想让用户在tableview中点击一个单元格并听到音频。单元格的信息是从核心数据加载的,因此我假设我将核心数据中音频文件的路径作为类型为“string”的属性


我完全不知道从这里到哪里去。我如何称呼路径?经过长时间的搜索,我还没有找到太多关于这个主题的信息,所以非常感谢您的帮助

你的问题很广泛。对于您来说,最好的入门方法是通过苹果的avTouch示例进行学习。它将向您展示如何加载和播放音频文件。

您应该只将文件名存储在托管对象中,然后每次重建文件路径

在iOS中,应用程序目录的名称只是一个UUID,在每次安装时都是不同的。此外,系统可能会在没有警告的情况下更改UUID目录。这是安全系统的一部分

假设您想将音频文件放在库目录中名为
AudioFiles
的目录中。您可以这样做:

NSString *fileName=//... file name from the managed object
NSArray *libraryPaths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libPath=[libraryPaths objectAtIndex:0];
NSArray *components=[NSArray arrayWithObjects:libPath,@"AudioFiles",fileName,nil];
NSString *theAudioFilePath=[NSString pathWithComponents:components];


根据您播放音频文件的方式,您可能需要将文件路径转换为文件URL。

avtouch通过在视图控制器中直接调用一个音频文件来教您如何播放该文件。我试图从核心数据中的托管对象调用音频。我可以用xml、json和plist实现这一点,但对我来说,核心数据是一个全新的、完全不同的世界。我想让它访问文件(当然是音频,甚至是图像)。。。不仅仅是字符串、数字等。您说您想从核心数据调用音频,但在最初的问题中,您说您只调用核心数据的音频路径。是哪一个?哦,当然。我真的不知道我想要什么。。。基本上,一切都是最好的。我想以任何方式调用音频。我认为这条路最好。你真的需要研究一下苹果的一个核心数据示例。如果您将其与avTouch示例相结合,您将能够实现您想要的。最简单的方法是将路径存储在核心数据中,并将音频文件保留在主捆绑包中。为了澄清,NSString*文件名就是我要将音频文件放入的文件夹?我要为每个单元格创建一个不同的音频文件(一个快速口语短语)。这意味着我在AudioFiles目录中有大量的音频文件。。。超过100人。我应该经历一次痛苦吗?也许我做得不对,应该创建一个自定义的原子存储。不,文件名是音频文件的名称。“AudioFiles”是文件夹的名称。上面的代码假定文件夹已经存在。混合核心数据和独立媒体文件是常见的。虽然可以将音频和图像存储在核心数据中,但将它们作为独立文件保存更为有效,因此有许多应用程序设计将两者混合使用。为了在表中显示,将音频文件的信息(名称、时间戳等)存储在核心数据中,然后独立加载实际文件更容易。我尝试了您的代码。。它正在显示路径。。但不创建任何音频文件文件夹或库文件夹中的任何文件。。plz帮助在大多数情况下,您必须提供实际创建文件的方法的完整路径。无论文件是否存在,此代码都提供完整路径。它不会创建文件。