【问题标题】:How can a ringtone be stored as a string?如何将铃声存储为字符串?
【发布时间】:2012-12-22 17:02:26
【问题描述】:

在我的应用程序中,我需要用户选择铃声作为应用程序声音。我使用RingtoneManager.ACTION_RINGTONE_PICKER 来获取选定的铃声。它返回铃声的Uri,我可以把它变成铃声,一切都很好。但这是棘手的部分:

我所有的应用程序数据都保存在一个 XML 文件中,因此我需要一种将铃声保存为 String 的方法。 我正在考虑使用Uri.getPath() 获取铃声的路径并将路径保存在我的应用程序中。但是当我需要使用它时,我找不到将路径转换回铃声的方法。 这是我尝试将 Uri 转换为 String 并返回的代码:

String ringtonePath = ringtoneUri.getPath();
ringtoneUri = Uri.parse(ringtonePath);
Ringtone ringtone = RingtoneManager.getRingtone(getActivity(), ringtoneUri);

它不起作用。 LogCat 输出:

Failed to open ringtone /internal/audio/media/13

然后铃声得到null

【问题讨论】:

    标签: android uri ringtone


    【解决方案1】:

    Uri.path 仅返回 URL 的 path 部分。例如,如果 URI 是“http://hello.com/world/1”,那么path 只是 URI 的“/world/1”部分。您应该将 Uri.toString() 的结果存储在您的 XML 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      相关资源
      最近更新 更多