Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
25.00% |
7 / 28 |
|
20.00% |
1 / 5 |
CRAP | |
0.00% |
0 / 1 |
MP3Handler | |
25.00% |
7 / 28 |
|
20.00% |
1 / 5 |
62.05 | |
0.00% |
0 / 1 |
getMetadataType | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
getWebType | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
getStreamTypes | |
85.71% |
6 / 7 |
|
0.00% |
0 / 1 |
5.07 | |||
getShortDesc | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
6 | |||
getLongDesc | |
0.00% |
0 / 12 |
|
0.00% |
0 / 1 |
6 |
1 | <?php |
2 | |
3 | namespace MediaWiki\TimedMediaHandler\Handlers\MP3Handler; |
4 | |
5 | use File; |
6 | use MediaWiki\TimedMediaHandler\Handlers\ID3Handler\ID3Handler; |
7 | |
8 | /** |
9 | * MP3 handler |
10 | */ |
11 | class MP3Handler extends ID3Handler { |
12 | |
13 | /** |
14 | * @param File $image |
15 | * @return string |
16 | */ |
17 | public function getMetadataType( $image ) { |
18 | return 'mp3'; |
19 | } |
20 | |
21 | /** |
22 | * @param File $file |
23 | * @return string |
24 | */ |
25 | public function getWebType( $file ) { |
26 | return 'audio/mpeg'; |
27 | } |
28 | |
29 | /** |
30 | * @param File $file |
31 | * @return string[]|false |
32 | */ |
33 | public function getStreamTypes( $file ) { |
34 | $streamTypes = []; |
35 | $metadata = $this->unpackMetadata( $file->getMetadata() ); |
36 | if ( !$metadata || isset( $metadata['error'] ) ) { |
37 | return false; |
38 | } |
39 | if ( isset( $metadata['audio'] ) && $metadata['audio']['dataformat'] === 'mp3' ) { |
40 | $streamTypes[] = 'MP3'; |
41 | } |
42 | return $streamTypes; |
43 | } |
44 | |
45 | /** |
46 | * @param File $file |
47 | * @return string |
48 | */ |
49 | public function getShortDesc( $file ) { |
50 | $streamTypes = $this->getStreamTypes( $file ); |
51 | if ( !$streamTypes ) { |
52 | return parent::getShortDesc( $file ); |
53 | } |
54 | return wfMessage( 'timedmedia-mp3-short-audio' |
55 | )->timeperiodParams( |
56 | $this->getLength( $file ) |
57 | )->text(); |
58 | } |
59 | |
60 | /** |
61 | * @param File $file |
62 | * @return string |
63 | */ |
64 | public function getLongDesc( $file ) { |
65 | $streamTypes = $this->getStreamTypes( $file ); |
66 | if ( !$streamTypes ) { |
67 | return parent::getLongDesc( $file ); |
68 | } |
69 | return wfMessage( |
70 | 'timedmedia-mp3-long-audio' |
71 | )->timeperiodParams( |
72 | $this->getLength( $file ) |
73 | )->bitrateParams( |
74 | $this->getBitRate( $file ) |
75 | )->sizeParams( |
76 | $file->getSize() |
77 | )->text(); |
78 | } |
79 | |
80 | } |