颤动的应用程序与背景音乐(外部)

时间:2018-06-19 10:47:08

标签: android ios dart flutter

在后台运行的应用上播放音乐时(例如,Google Play音乐,Apple音乐,Spotify等),如果您在颤动的应用中播放任何音频,背景音乐会停止/暂停并且不会重新启动音频播放完毕后。

我已经尝试使用iOS上的TTS库和AudioPlayer库。

有关如何在音频完成后恢复播放背景音频的任何提示(实际上只是一个2/3秒的短语)?

尚不确定这是否会影响Android。

注意:此示例中使用了TTS,但它适用于我尝试过的每个库。

Pubspec.yaml

tts: "^1.0.1"

代码:

import 'package:flutter/material.dart';
import 'package:tts/tts.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.red,
      ),
      home: new AudioExample(),
    );
  }
}

class AudioExample extends StatefulWidget {
  @override
  _AudioExampleState createState() => _AudioExampleState();
}

class _AudioExampleState extends State<AudioExample> {

  speak() async {
    Tts.speak('Hello World');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: new AppBar(
        title: new Text('Audio example app'),
      ),
      body: Container(
        width: double.infinity,
        height: double.infinity,
        decoration: BoxDecoration(
          color: Colors.grey[300],
        ),
        child: new Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: <Widget>[
            IconButton(
              icon: Icon(Icons.play_arrow),
              onPressed: speak,
              color: Colors.red,
              iconSize: 100.0,
            ),
            new Padding(
              padding: const EdgeInsets.all(20.0),
              child: Text(
                  'Will say hello world once clicked and pause background audio on iOS - how to restart background audio after playing has finished?',
                textAlign: TextAlign.center,
              ),
            ),
          ],
        ),
      ),
    );
  }
}

1 个答案:

答案 0 :(得分:0)

您可以比Flutter更好地在Java文件中添加音乐,并添加循环功能转到android / app / src / main / java / com / example / ProjectName / MainActivity.java

并添加

  mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.MusicName);
  mediaPlayer.setLooping(true);
  mediaPlayer.start();
  mediaPlayer.setLooping(true);

在onCreate方法中,转到名为res的文件夹,并在其中创建一个名为raw的文件夹,并将您的音乐放入其中