我想使用 AVAudioplyaer 框架开发音频播放器。我有一些 MP3 URL。我想使用本地数据库(SQLITE3)。总 MP3 url 放在 SQLITE3 中。我想从 sqlite3 获取 url。这是我的应用程序要求。我有想法使用 json 框架如何获取音频 url。但我不知道如何使用本地数据库获取 url。请告诉我如何将 MP3 URL 放入 SQLITE3 以及如何从 sqlite3 获取 url。我是编程新手。提前致谢。
问问题
469 次
2 回答
0
两种存储方式
将 URLS 存储在字符串中,然后检索它...或
使用 BLOB 将音频存储在 sqlite 中...
于 2013-11-13T11:48:19.820 回答
0
使用 SQLite 数据库浏览器软件创建 sqlite 数据库并将 url 添加到您的表中,然后在您的应用程序中使用该文件,或者您可以使用代码创建数据库然后读取数据。FMDB库是一个很好的选择。要使用代码创建数据库,您可以使用此链接创建 sqlite 数据库并使用选择查询选择 url,您可以使用
-(NSArray *)getAudioUrls {
sqlite3 *database;
sqlite3_open([[DBAccess getDBPath] UTF8String], &database);
NSMutableArray *result = [[NSMutableArray alloc]init] ;
NSString *sql = @"SELECT url FROM AudioUrl"; //AudiUrl is sqlite table name
sqlite3_stmt *statement;
int sqlResult = sqlite3_prepare_v2(database, [sql UTF8String], -1, &statement, NULL);
if(sqlResult == SQLITE_OK)
{
while(sqlite3_step(statement) == SQLITE_ROW)
{
AudioFile *audio = [[Celebrity alloc]init]; // Create audiofile class
[audio setAudioUrl:[NSString stringWithUTF8String:(char *) sqlite3_column_text(statement, 0)]];
[result audio];
}
} else
{
result = nil;
printf( "could not prepare statemnt: %s\n", sqlite3_errmsg(database) );
}
sqlite3_reset(statement);
sqlite3_finalize(statement);
sqlite3_close(database);
return result;
}
#pragma mark Class functions
+ (NSString *) getDBPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:@"Audio.sqlite"];
}
于 2013-11-13T11:55:40.327 回答