|
4 | 4 |
|
5 | 5 | import 'dart:async'; |
6 | 6 | import 'dart:convert'; |
| 7 | +import 'dart:typed_data'; |
7 | 8 |
|
8 | 9 | import 'package:flutter/foundation.dart'; |
| 10 | +import 'package:flutter/services.dart'; |
9 | 11 | import 'package:flutter/widgets.dart'; |
10 | 12 | import 'package:flutter_driver/driver_extension.dart'; |
11 | 13 | import 'package:flutter_test/flutter_test.dart'; |
@@ -136,29 +138,35 @@ void main() { |
136 | 138 | }); |
137 | 139 |
|
138 | 140 | group('Media playback policy', () { |
139 | | - final String audioTest = ''' |
140 | | - <!DOCTYPE html><html> |
141 | | - <head><title>Audio auto play</title> |
142 | | - <script type="text/javascript"> |
143 | | - function play() { |
144 | | - var audio = document.getElementById("audio"); |
145 | | - audio.play(); |
146 | | - } |
147 | | - function isPaused() { |
148 | | - var audio = document.getElementById("audio"); |
149 | | - return audio.paused; |
150 | | - } |
151 | | - </script> |
152 | | - </head> |
153 | | - <body onload="play();"> |
154 | | - <audio controls id="audio"> |
155 | | - <source src="https://file-examples.com/wp-content/uploads/2017/11/file_example_MP3_700KB.mp3"> |
156 | | - </audio> |
157 | | - </body> |
158 | | - </html> |
159 | | - '''; |
160 | | - final String audioTestBase64 = |
161 | | - base64Encode(const Utf8Encoder().convert(audioTest)); |
| 141 | + String audioTestBase64; |
| 142 | + setUpAll(() async { |
| 143 | + final ByteData audioData = |
| 144 | + await rootBundle.load('assets/sample_audio.ogg'); |
| 145 | + final String base64AudioData = |
| 146 | + base64Encode(Uint8List.view(audioData.buffer)); |
| 147 | + final String audioTest = ''' |
| 148 | + <!DOCTYPE html><html> |
| 149 | + <head><title>Audio auto play</title> |
| 150 | + <script type="text/javascript"> |
| 151 | + function play() { |
| 152 | + var audio = document.getElementById("audio"); |
| 153 | + audio.play(); |
| 154 | + } |
| 155 | + function isPaused() { |
| 156 | + var audio = document.getElementById("audio"); |
| 157 | + return audio.paused; |
| 158 | + } |
| 159 | + </script> |
| 160 | + </head> |
| 161 | + <body onload="play();"> |
| 162 | + <audio controls id="audio"> |
| 163 | + <source src="data:audio/ogg;charset=utf-8;base64,$base64AudioData"> |
| 164 | + </audio> |
| 165 | + </body> |
| 166 | + </html> |
| 167 | + '''; |
| 168 | + audioTestBase64 = base64Encode(const Utf8Encoder().convert(audioTest)); |
| 169 | + }); |
162 | 170 |
|
163 | 171 | test('Auto media playback', () async { |
164 | 172 | Completer<WebViewController> controllerCompleter = |
|
0 commit comments