iPhone 如何离线听歌和自定义铃声

在 Android 里使用离线音乐是一件比较简单的事,只需要通过传输或下载的方式将音乐文件保存到手机存储卡中,就可以直接使用音乐 APP 进行播放,或是在「设置」里将其设置成手机铃声。

但是,在 iPhone 里这事却没那么容易。一方面,iPhone 的文件管理逻辑跟我们习惯了的 Windows 和 Android 等截然不同,iPhone 里的 APP 运行在沙盒里,只能访问自己的私有存储空间,而且不存在一个所有 APP 都能访问的公共存储空间,也就是说你不能简单地将音乐文件保存到存储卡里然后使用音乐 APP 播放。另一方面,iPhone 平台的版权非常严格,即使你成功将音乐文件导入了系统音乐 APP 的资料库中,也可能因为版权问题而无法播放。

本文主要讲解如何在 iPhone 里使用离线音乐。

离线听歌

下载音乐文件

这里推荐两个不错的免费音乐下载网站

  • HiFiNi - 音乐磁场
  • MyFreeMP3

安装所需软件和操作环境

首先需要安装 ffmpeg 命令以清除音乐文件里的版权信息。其次为了方便使用 ffmpeg 命令,最好安装一个 bash shell 环境,推荐 msys2。最后还需要安装 iTunes 软件以将处理好的音乐文件导入 iPhone 系统音乐 APP 的资料库中。

清理音乐文件的版权信息

  1. 打开 msys2,使用 cd 命令进入音乐文件所在目录,创建 strip_metadata.sh 文件,写入如下内容
#!/usr/bin/env bash

find_cmd="find . -maxdepth 1 -name '*.mp3'"
if [ "$1" -gt 0 ] 2> /dev/null; then
    find_cmd="$find_cmd -mmin -$1"
    ffdo="$2"
else
    ffdo="$1"
fi

ffcmd="ffmpeg -hide_banner -loglevel warning"
while IFS= read -r f <&3; do
    echo $f
    if [ "$ffdo" == "do" ]; then
        $ffcmd -i "${f:2}" -c copy -f avi -map 0:a - | \
        $ffcmd -i - -c copy -map_metadata -1 "no-metadata/${f:2}"
    fi
done 3< <(eval "$find_cmd -print0 | xargs -r0 ls -tr")
  1. 按步骤执行以下命令
mkdir no-metadata
./strip_metadata.sh do

将音乐文件导入资料库中

  1. 打开 iTunes,将 no-metadata 目录中生成的去除了版权信息的音乐文件添加到资料库中。还可以添加一些播放列表,将音乐整理起来。
  2. 用数据线将 iPhone 链接到电脑,然后使用 iTunes 同步数据。
  3. 同步成功后就可以在 iPhone 里用系统音乐 APP 播放这些音乐了。

自定义铃声

自定义手机铃声,其实就是使用剪辑软件将一首歌曲最精华的部分剪辑出来成为一个相对简短的音乐文件。由于铃声通常用作通知提醒,一般会选取一些声调比较高容易引起注意的歌曲,当然这个看个人的喜好。

iPhone 里有两种类型的铃声。一种是普通的,只需要将铃声文件导入资料库就行,可以用来设置闹钟通知、快捷指令提醒。另一种是电话铃声,这个有点麻烦,需要借助库乐队 APP 处理才行,并且铃声的时长还有限制,最多 30 秒。

以下是操作步骤

  1. 下载自己喜欢的音乐文件,按照前面介绍的方法去除版权信息。
  2. 使用音频剪辑软件将音乐的精华部分单独剪辑出来,推荐使用 Adobe Audition。如果是用作电话铃声的话,要注意时长控制在 30 秒以内。
  3. 普通铃声直接使用前面的方法导入资料库即可。
  4. 对于电话铃声,首先通过 iTunes 的「文件共享」将铃声文件添加到库乐队 APP 里。然后按照网上的教程在 iPhone 里使用库乐队 APP 将铃声转化成电话铃声。