使用本机反应播放 .Flac 或 .Alac 文件,甚至可以在 iPhone 上使用吗?

Posted

技术标签:

【中文标题】使用本机反应播放 .Flac 或 .Alac 文件,甚至可以在 iPhone 上使用吗?【英文标题】:Playing .Flac or .Alac files using react native, is it even possible on iphone? 【发布时间】:2021-12-24 08:57:54 【问题描述】:

我正在为音频播放创建一个 react 本机应用程序,并且更喜欢使用 .flac 或 .alac 文件。 该应用在使用 .wav 文件时运行良好,但导入 .flac 文件会导致崩溃。

所以我收到了这个错误:

ios 捆绑失败 3555 毫秒 无法从 C:\Users\samir\Source\OctaCoil\apps\context\AudioProvider.js 解析模块 ../../assets/Pain-Inflammation.flac:

这些文件都不存在:assets\Pain-Inflammation.flac(.native|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx|.ios.js |.native.js|.js|.ios.jsx|.native.jsx|.jsx|.ios.json|.native.json|.json) assets\Pain-Inflammation.flac\index(.native|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx|.ios.js|.native.js|. js|.ios.jsx|.native.jsx|.jsx|.ios.json|.native.json|.json) 16 |编号:1, 17 |标题:'充满活力',

18 | url: 要求('../../assets/Pain-Inflammation.flac'), | ^ 19 |持续时间:30.00, 20 |类型:'心脏'

这是我认为相关的代码的一部分。

import * as MediaLibrary from 'expo-media-library';
import  DataProvider  from 'recyclerlistview';
import AsyncStorage from '@react-native-async-storage/async-storage';
import  Audio  from 'expo-av';
import  storeAudioForNextOpening  from '../misc/helper';
import  playNext  from '../misc/audioController';

export const AudioContext = createContext();

export class AudioProvider extends Component 
  audioItems = [
    
      id: 1,
      title: 'Energize',
      url: require('../../assets/Pain-Inflammation.flac'),
      duration: 30.00,
      type: 'heart'
    ,

有什么想法吗?

【问题讨论】:

【参考方案1】:

您正在尝试require Flac 文件,这将不起作用,因为解释器正在尝试将其读取为 ts/js 源文件(它不是)。删除require 并提供资产文件的正确路径,它至少会停止抛出该错误:

// ...
export class AudioProvider extends Component 
  audioItems = [
    
      id: 1,
      title: 'Energize',
      url: '../../assets/Pain-Inflammation.flac',
      duration: 30.00,
      type: 'heart'
    ,
// ...

也就是说,Flac 播放应该在 iOS 11+ 上工作,但这取决于 expo-av 提供的实现。如果它在 iOS 上使用 AudioToolbox 和/或 AVFoundation,它应该可以工作。

【讨论】:

感谢@bensnider 的回答。删除“必需”确实停止抛出错误,但文件仍未播放。你提到应该工作吗?支持查看世博会文档 .flac(或 alac)。这里的想法用完了,有什么意见吗? @SamirHassen 如果您转码为其他格式,它会播放吗?如果是这样,那是 flac 的编解码器问题,如果不是,那么我会确保文件的路径是正确的,并且它被适当地捆绑到应用程序中。

以上是关于使用本机反应播放 .Flac 或 .Alac 文件,甚至可以在 iPhone 上使用吗?的主要内容,如果未能解决你的问题,请参考以下文章

无损压缩(ALAC/APE/FLAC/WAV)

优秀的无损音乐播放器

使用NoteBurner Spotify Music Converter在 Spotify 上制作协作播放列表

如何使用 expo-av 在本机反应中播放背景音频?

如何同时播放多个音频文件

从 HTML 中的 Web 服务器资源播放 FLAC