0

我想使用 AVAudioplyaer 框架开发音频播放器。我有一些 MP3 URL。我想使用本地数据库(SQLITE3)。总 MP3 url 放在 SQLITE3 中。我想从 sqlite3 获取 url。这是我的应用程序要求。我有想法使用 json 框架如何获取音频 url。但我不知道如何使用本地数据库获取 url。请告诉我如何将 MP3 URL 放入 SQLITE3 以及如何从 sqlite3 获取 url。我是编程新手。提前致谢。

4

2 回答 2

0

两种存储方式

  1. 将 URLS 存储在字符串中,然后检索它...或

  2. 使用 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 回答